如何以编程方式创建 Unwind segue
How to create Unwind segue programmatically
我制作了一个不使用情节提要的应用程序,在我的应用程序的这一部分中,我需要仅以编程方式创建从 ThirdViewController
到 FirstViewController
的展开转场。我知道如何使用 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
的覆盖中,您可以根据传回的数据执行操作。
我制作了一个不使用情节提要的应用程序,在我的应用程序的这一部分中,我需要仅以编程方式创建从 ThirdViewController
到 FirstViewController
的展开转场。我知道如何使用 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
的覆盖中,您可以根据传回的数据执行操作。