我有一个带按钮的UIViewController。此按钮的segue连接到另一个UIViewController,segue的类型为Show
。它看起来像这样:
self.performSegueWithIdentifier("myIdentifier", sender: user)
,函数prepareForSegue
为:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if (segue.identifier == "myIdentifier"){
if let frD = segue.destinationViewController as? MyNextClass,
...
现在,当用户按下按钮时,新的UIViewController会在全屏幕上弹出。它还有一个名为exitButton
的按钮,可以完成一件事:
@IBAction func exitbuttonaction(sender: AnyObject) {
self.dismissViewControllerAnimated(true, completion: nil)
}
当用户按下它时 - 他们会关闭此视图控制器并看到前一个视图控制器。之前的容器具有viewWillAppear
功能,但每次用户从第二个控制器返回时都不会调用它。为什么不,因为它每次出现在用户身上?
此外,有没有其他方法可以区分父控制器何时出现在用户身上? (可能是一些类似于viewWillAppear
的其他功能,在解雇第二个控制器时可以工作)
答案 0 :(得分:1)
您必须使用UnwindSegue
。 UnwindSegue
为您提供了一种“展开”导航堆栈并指定要返回的目标的方法。您的viewWillAppear
永远不会再次打电话,因为已经出现了。
如果您想知道UnwindSegue
是什么,可以查看以下答案:stackoverflow anser
如果您想知道如何操作,我推荐这些链接: