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

Add segue to dynamically created cells

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

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

问题:

Interface Builder 设置屏幕截图:

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

- performSegueWithIdentifier:sender:

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

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

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