将segue添加到动态创建的单元格

时间:2015-05-29 21:29:27

标签: ios uitableview swift uicollectionview segue

我正在动态创建适合UICollectionView的9个单元格。点击时,每个按钮将加载一个不同的视图控制器。由于单元格是由数组中的数据生成的,因此我无法在Interface Builder中设置segue identifier

我一直在使用这种方法:self.navigationController?.pushViewController(vc, animated: true),但我相信这不是转换到其他视图控制器的最新方式。

问题:

  • 我是否应该以编程方式为每个动态单元格创建一个segue,如果是这样的话: 如何?
  • 我应该将界面构建器中的一个按钮连接到虚拟视图控制器并在segue开始之前切换目标视图控制器,如果是这样的话:我将如何切换目标视图控制器?

Interface Builder截图:

Interface Builder Setup

2 个答案:

答案 0 :(得分:2)

您应该在Interface Builder中设置segue,但不能从按钮设置segues,而是从视图控制器设置segues并设置适当的标识符。 使用此方法启动segue:

- performSegueWithIdentifier:sender:

答案 1 :(得分:1)

我不会在这种情况下使用segues。我会给每个不同的视图控制器一个故事板ID,然后以这种方式加载它们。然后,您可以按该ID加载特定的视图控制器并以此方式进行转换。

我对你的代码做了一些假设,所以我可以展示一个例子。我将假设每个单元格中都有一个按钮,这就是按下触发segue的按钮。我还假设这些细胞中的每一个都是按钮将初始视图控制器作为目标,使用类似下面代码中的方法声明。

func buttonPressed(cell: UICollectionViewCell) {
    let viewController = self.storyboard!.instantiateViewControllerWithIdentifier("storyboardID") as! UIViewController
    self.navigationController!.showViewController(viewController, sender: self)
}