如何以编程方式创建 Unwind segue

How to create Unwind segue programmatically

我制作了一个不使用情节提要的应用程序,在我的应用程序的这一部分中,我需要仅以编程方式创建从 ThirdViewControllerFirstViewController 的展开转场。我知道如何使用 sotorybard 做到这一点,但找不到任何解决方案如何以编程方式做到这一点。有什么建议吗?

如果没有情节提要,您无法创建实际的 segue,但您可以通过在 navigationController 上调用 popToViewController 来执行等效操作。这是一个从 ThirdViewController 连接到 return 到 FirstViewController 的按钮的示例:

@IBAction func goBackToFirstVC(sender: UIButton) {
    guard let controllers = navigationController?.viewControllers else { return }
    let count = controllers.count
    if count > 2 {
        // Third from the last is the viewController we want
        if let firstVC = controllers[count - 3] as? FirstViewController {
            // pass back some data
            firstVC.someProperty = someData
            firstVC.someOtherProperty = moreData

            navigationController?.popToViewController(firstVC, animated: true)
        }
    }
}

viewWillAppear 的覆盖中,您可以根据传回的数据执行操作。