找出UIViewController是否由于后退导航而出现

时间:2016-07-29 06:06:06

标签: ios swift uiviewcontroller segue

我有一个iOS视图控制器,可以从SourceViewController中显示,也可以在导航栏上单击“< Back”。

如何通过用户点击/触摸导航栏上的" < Back "来查看ViewController是否显示。

1 个答案:

答案 0 :(得分:1)

导航回来时不会调用

viewDidLoad,因此您可以在那里设置某种标志并在适当的位置重置(可能是viewDidAppear?)。至于每次从viewDidLoad打开它时是否会调用SourceViewController取决于您的代码 - 如果您每次都创建一个新实例,那么您应该没问题。

举个例子:

class SampleViewController : UIViewController {
    var isOpenedFromBackNavigation = false

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override func viewDidAppear(animated: Bool) {
        super.viewDidAppear(animated)
        if self.isOpenedFromBackNavigation {
            // code that should be run if we navigated back here
        }
        self.isOpenedFromBackNavigation = true
    }
}