我正在动态创建适合UICollectionView
的9个单元格。点击时,每个按钮将加载一个不同的视图控制器。由于单元格是由数组中的数据生成的,因此我无法在Interface Builder中设置segue
identifier
。
我一直在使用这种方法:self.navigationController?.pushViewController(vc, animated: true)
,但我相信这不是转换到其他视图控制器的最新方式。
问题:
Interface Builder截图:
答案 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)
}