2017-06-20 59 views
0

我已经研究了这个问题,但大约一个小时后还没有找到答案。我有一个CardTableViewViewController作为根和第二个表标识为workTableView。当我选择一个单元格并将数组发送到workTableView时,我想将workTableView拖到CardTableView上。我想用show segue来做到这一点。将UITableViewController推送到ViewController的UITableView

以下是我在包含CardTableViewViewController曾尝试:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
    //NSLog("You selected cell number: \(indexPath.row)!") 

    tableView.deselectRow(at: indexPath, animated: true) 


    let vc = UIStoryboard(name:"Workout", bundle:nil).instantiateViewController(withIdentifier: "workTableView") as! TableViewController 
print("selected") 
    self.navigationController?.pushViewController(vc, animated: true) 
} 

我在故事板创建workTableView,而是想以编程方式最终创建它。

+0

删除'self.window .rootViewController = nav1'和'self.window .makeKeyAndVisible()'!?。顺便说一句,为什么你需要遵循这种方法?您可以在选择单元格时“呈现”您的视图控制器。 – nayem

+0

我建议通过一些关于展示视图控制器的简单教程 – SomaMan

+0

@nayem我不认为我可以“呈现”,因为根视图不是控制器,它在控制器内 – defoification

回答

1

这个替换您tableView(_:didSelectRowAT:)方法:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 

    tableView.deselectRow(at: indexPath, animated: false) 
    let storyboard = UIStoryboard(name: "Workout", bundle: nil) 
    let nextScene = storyboard.instantiateViewController(withIdentifier: "SecondTableViewControllerStoryboardIdentifier") as! TableViewController // TableViewController <- must be changed to the name of the Second View Controller class 

    nextScene.dataToPass = something you want to pass // dataToPass is the variable that you declare in your Second View Controller 

    self.navigationController?.pushViewController(nextScene, animated: true) 
} 
+0

对不起,我没有澄清这个问题就够了。看我的编辑。其实,我只有一个'UITableView'。该tableview在'UIViewController'中。我仍然会在'UITableView'中覆盖它,还是需要将它更改为'UITableViewController'? – defoification

+0

看我的编辑。删除“覆盖”关键字。 @defoification – nayem

+0

以及我将这个方法放在哪个类中,'ViewController'或'UITableView'? – defoification

相关问题