导航到表视图

时间:2017-02-13 01:16:56

标签: swift xcode

我是swift的初学者。我正在尝试创建一个选项卡式应用程序。对于我的一个标签,我正在创建一个包含多个行的表视图,每个行都有不同的任务(想想这个的好方法是facebook应用程序,其中更多屏幕中的每个选项都会将您带到一个单独的视图)

现在,我的表中填充了一个数组:

let array  = ["one", "two", "three]

我想问一下,每当我点击其中一行时,我想去一个新的视图控制器。这怎么可能?

我尝试的是performSegue我在故事板中提供的identifier,但是会有x个连接到表格视图的段数?所以我不认为这是对的? :/

在生成表之前我知道数组的内容,所以如果我知道数组值和被点击的行,我该如何导航到新的视图控制器?

修改

当在控制器之间执行segue时,我正在使用:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    self.performSegue(withIdentifier: "showView", sender: self)
}

这当然只会连接到segue showView但是,如何添加多个视图控制器?

3 个答案:

答案 0 :(得分:7)

您需要简单地比较tableView中选择的行,然后根据它执行segue。

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    let segueIdentifier: String
    switch indexPath.row {
    case 0: //For "one"
         segueIdentifier = "showView1"
    case 1: //For "two"
         segueIdentifier = "showView2"
    default: //For "three"
         segueIdentifier = "showView3"
    }
    self.performSegue(withIdentifier: segueIdentifier, sender: self)
}

答案 1 :(得分:1)

将以下功能添加到控制器。

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    navigationController?.pushViewController(NewController(), animated: true)
}

答案 2 :(得分:1)

在UITableViewController中使用静态单元格

摘要

另一种方法是将UITableViewController与静态单元格一起使用。如果您知道菜单,则可以为每个项目创建静态单元格。

在情节提要中,您可以将每个单元格的segue连接到其各自的视图控制器。

示例

example