如何在我的Swift应用程序中向用户显示我的UIViewController是否被查看?

时间:2016-04-28 22:15:40

标签: ios swift uiviewcontroller viewwillappear

我有一个带按钮的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的其他功能,在解雇第二个控制器时可以工作)

1 个答案:

答案 0 :(得分:1)

您必须使用UnwindSegueUnwindSegue为您提供了一种“展开”导航堆栈并指定要返回的目标的方法。您的viewWillAppear永远不会再次打电话,因为已经出现了。

如果您想知道UnwindSegue是什么,可以查看以下答案:stackoverflow anser

如果您想知道如何操作,我推荐这些链接:

apple documentation about unwind segues

tutorial about unwind segues

youtube videotutorial