【问题标题】:Perform segue depending on the UITableViewCell row selected根据选定的 UITableViewCell 行执行 segue
【发布时间】:2017-06-01 09:59:48
【问题描述】:

我有一个UITableView 有几行例如。第 1 行,第 2 行,第 3 行。我也有 3 个 UIviewController,例如甲、乙、丙。

当我在表格视图中选择 row1 时,我想显示视图控制器 A。

当我在表格视图中选择 row2 时,我想显示视图控制器 B。

当我在表格视图中选择 row3 时,我想显示视图控制器 C。

我想用 if 语句来做到这一点。

我选择了 UITableViewCell 并 ctrl + 将其拖到视图控制器上以创建一个可以调用的 segue。但是它不会让我在 UITableViewCell 和各种 viewControllers 之间创建多个 segues。

override func tableView(tableView: UITableView, didDeselectRowAtIndexPath indexPath: NSIndexPath) {

    if indexPath.row == 0 {
        self.performSegueWithIdentifier("A", sender: self)
    }

    if indexPath.row == 1 {
        self.performSegueWithIdentifier("B", sender: self)
    }

    if indexPath.row == 2 {
        self.performSegueWithIdentifier("B", sender: self)
    }

}

我正在使用 swift 2。

【问题讨论】:

  • public func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { } 使用这个委托方法

标签: ios swift uitableview uiviewcontroller uistoryboardsegue


【解决方案1】:
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
   //handle your code here
}

你犯的错误是:你在didDeselectRowAtIndexPath中处理了

多个segues:参考图片

【讨论】:

    【解决方案2】:

    如果您在 InterfaceBuilder 中从原型单元格中按住 ctrl 键拖动了一个转场,则在点击该单元格时,该转场将在没有代码的情况下执行。

    要创建多个转场,您需要从 ViewController(顶部的黄色图标)按住 ctrl 并拖动到各个目的地。

    【讨论】:

    • 请记住,您可以在 prepareForSegue 中进行所需的任何设置
    猜你喜欢
    • 2020-08-18
    • 1970-01-01
    • 2015-01-08
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-11
    相关资源
    最近更新 更多