首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift 3: Tableview选择行转到不同的导航视图

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

Stack Overflow用户
提问于 2017-03-14 08:34:19
回答 2查看 1.5K关注 0票数 0

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

代码语言:javascript
复制
Tab-bar View 
-->TableView
----->TableView
--------->View
--------->TableView
--------->etc.
----->TableView
----->View
-->TableView

例如,主选项卡栏应该在导航控制器中嵌入一个tableView控制器。单击某个单元格(index.path)应该会出现一个单独的表视图或视图控制器,该表视图或视图控制器本身可以分支到自己的一系列“子”表中。这些表应该是动态的,并且都有导航控件,可以“弹出”到最新的表/视图控制器。

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

代码语言:javascript
复制
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,所有这些都带有导航功能。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-14 08:59:19

将您的代码更改为:

代码语言:javascript
复制
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)
    }
}
票数 1
EN

Stack Overflow用户

发布于 2017-03-14 13:24:53

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

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

代码语言:javascript
复制
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)
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42775878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档