Swift 3:Tableview 选择行转到不同的导航视图

Posted

技术标签:

【中文标题】Swift 3:Tableview 选择行转到不同的导航视图【英文标题】:Swift 3 : Tableview select row goes to different navigation views 【发布时间】:2017-03-14 00:34:18 【问题描述】:

尝试使用 Xcode 8.2 使用 Swift 3 创建一个简单的应用程序。希望有如下层次结构:

Tab-bar View 
-->TableView
----->TableView
--------->View
--------->TableView
--------->etc.
----->TableView
----->View
-->TableView

例如,主标签栏应该在导航控制器中嵌入一个 tableView 控制器。单击某个单元格(index.path)应该会导致一个单独的 tableview 或 viewcontroller 本身可以分支到它自己的一系列“子”表中。这些表应该是动态的,并且都具有导航控件,可以将“pop”引导回最近的表/视图控制器。

目前,对于主表视图,我有:

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,但顶部没有导航栏控制器。例如,从苹果公司,如果您单击“常规”行下方的图像,您将被引导到一个导航表视图,该视图将您带到密码锁代码,该代码将您带到自动锁定,所有这些都带有导航。

【问题讨论】:

【参考方案1】:

将代码更改为:

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)
    

【讨论】:

【参考方案2】:

这个方法是委托方法。因此它将应用于表格的所有单元格,因为我们已将委托绑定到表格视图。单元格是表格视图的子视图。

你必须给出单元格是否被选中的条件..

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)
    

【讨论】:

以上是关于Swift 3:Tableview 选择行转到不同的导航视图的主要内容,如果未能解决你的问题,请参考以下文章

在 Swift4 中取消选中 TableView 所有 TableView 选择

如何以编程方式将不同单元格的不同图像添加到 tableView (Swift 3)

Swift - TableView的协议代理无法正常工作 - 以模态呈现

iOS Swift 3 最初在创建时在 tableView 中选择多行

从列表中选择并重新加载 Tableview Swift

如何在 swift 中从 uitableview 转到 uitextview 并使用 nsattributedtext 属性