尝试用Swift 3创建一个简单的应用程序,使用Xcode 8.2。希望有一个如下的层次结构:
Tab-bar View
-->TableView
----->TableView
--------->View
--------->TableView
--------->etc.
----->TableView
----->View
-->TableView例如,主选项卡栏应该在导航控制器中嵌入一个tableView控制器。单击某个单元格(index.path)应该会出现一个单独的表视图或视图控制器,该表视图或视图控制器本身可以分支到自己的一系列“子”表中。这些表应该是动态的,并且都有导航控件,可以“弹出”到最新的表/视图控制器。
目前,对于主表视图,我有:
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if indexPath.row == List_Database_Indexes.employees {
let myWebView = self.storyboard!.instantiateViewController(withIdentifier: "Employees") as! UITableViewController
//self.present(myWebView, animated: true, completion: nil)
self.performSegue(withIdentifier: "Employees", sender: nil)
}这将打开Employees UITableViewController,但顶部没有navigationbar控制器。例如,在苹果,如果你点击“General”行下面的图片,你会被引导到一个导航表视图,它会带你进入Passlock code,它会带你进入Auto-lock,所有这些都带有导航功能。

发布于 2017-03-14 08:59:19
将您的代码更改为:
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if indexPath.row == List_Database_Indexes.employees {
let myWebView = self.storyboard!.instantiateViewController(withIdentifier: "Employees") as! UITableViewController
//self.present(myWebView, animated: true, completion: nil)
//self.performSegue(withIdentifier: "Employees", sender: nil)
self.navigationController?.pushViewController(myWebView, animated: true)
}
}发布于 2017-03-14 13:24:53
此方法是委托方法。所以它将应用于表的所有单元格,因为我们已经将委托绑定到了tableview。单元格是表视图的子视图。
你必须给出单元格是否被选中的条件。
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if indexPath.row == //index of that cell {
let Employee = self.storyboard!.instantiateViewController(withIdentifier: "Employees") as! UITableViewController
self.navigationController?.pushViewController(Employee, animated: true)
}
}https://stackoverflow.com/questions/42775878
复制相似问题