             switch dataType {
             case .ALL:
                 dataController?.requestTutorialAllWithCallback(callback: {
+                    DispatchQueue.main.asyncAfter(deadline: .now() + 3) {
+                        self.tableView?.mj_header.endRefreshing()
+                    }
                     self.renderTableViewCell()
-                    tableView?.mj_footer = MJRefreshAutoNormalFooter(refreshingBlock: {
-                        DispatchQueue.main.asyncAfter(deadline: .now() + 3) {
-                            self.tableView?.mj_footer.endRefreshing()
-                        }
-                        self.dataController?.requestMoreTutorial(callback: {
-                            self.tableView?.mj_footer.endRefreshing()
-                            DispatchQueue.main.async(execute: {
-                                self.tableView?.reloadData()
-                            })
-                        }())
-                    })
-                    self.tableView?.mj_header.endRefreshing()
                 }())
                 break
             case .NEWER:
                 dataController?.requestTutorialNewerWithCallback(callback: {
+                    DispatchQueue.main.asyncAfter(deadline: .now() + 3) {
+                        self.tableView?.mj_header.endRefreshing()
+                    }
                     self.renderTableViewCell()
-                    tableView?.mj_footer = MJRefreshAutoNormalFooter(refreshingBlock: {
-                        DispatchQueue.main.asyncAfter(deadline: .now() + 3) {
-                            self.tableView?.mj_footer.endRefreshing()
-                        }
-                        self.dataController?.requestMoreTutorial(callback: {
-                            self.tableView?.mj_footer.endRefreshing()
-                            DispatchQueue.main.async(execute: {
-                                self.tableView?.reloadData()
-                            })
-                        }())
-                    })
-                    self.tableView?.mj_header.endRefreshing()
                 }())
                 break
             case .STEP:
                 dataController?.requestTutorialStepWithCallback(callback: {
+                    DispatchQueue.main.asyncAfter(deadline: .now() + 3) {
+                        self.tableView?.mj_header.endRefreshing()
+                    }
                     self.renderTableViewCell()
-                    tableView?.mj_footer = MJRefreshAutoNormalFooter(refreshingBlock: {
-                        DispatchQueue.main.asyncAfter(deadline: .now() + 3) {
-                            self.tableView?.mj_footer.endRefreshing()
-                        }
-                        self.dataController?.requestMoreTutorial(callback: {
-                            self.tableView?.mj_footer.endRefreshing()
-                            DispatchQueue.main.async(execute: {
-                                self.tableView?.reloadData()
-                            })
-                        }())
-                    })
-                    self.tableView?.mj_header.endRefreshing()
                 }())
                 break
             case .SKILL:
                 dataController?.requestTutorialSkillWithCallback(callback: {
+                    DispatchQueue.main.asyncAfter(deadline: .now() + 3) {
+                        self.tableView?.mj_header.endRefreshing()
+                    }
                     self.renderTableViewCell()
-                    tableView?.mj_footer = MJRefreshAutoNormalFooter(refreshingBlock: {
-                        DispatchQueue.main.asyncAfter(deadline: .now() + 3) {
-                            self.tableView?.mj_footer.endRefreshing()
-                        }
-                        self.dataController?.requestMoreTutorial(callback: {
-                            self.tableView?.mj_footer.endRefreshing()
-                            DispatchQueue.main.async(execute: {
-                                self.tableView?.reloadData()
-                            })
-                        }())
-                    })
-                    self.tableView?.mj_header.endRefreshing()
                 }())
                 break
             }

        tableView = UITableView(frame: CGRect(x: 0, y: 60 + (menu?.bounds.size.height)!, width: view.bounds.size.width, height: view.bounds.size.height - 60 - (menu?.bounds.size.height)!), style: .plain)
        tableView?.register(UINib(nibName: "DHTutorialTableViewCell", bundle: nil), forCellReuseIdentifier: kTutorialCellReuseIdentifier)
        tableView?.mj_header = MJRefreshNormalHeader(refreshingBlock: {
            self.handleTutorialData()
        })
        tableView?.delegate = self
        tableView?.dataSource = self

        dataController = DHTutorialDataController()
        dataController?.requestTutorialAllWithCallback(callback: {
            self.renderTableViewCell()
        }())
    }
    
