如何仅在第一次显示视图控制器时在viewDidAppear中触发动作?

时间:2019-07-03 15:47:54

标签: ios swift

基本上,当视图仅在应用程序首次加载时才首次出现时,我只希望打印以下“ hello”消息。当选项卡控制器中的某个选项卡触发ViewController时,可以再次显示该视图控制器,但它不应在第一次后打印该消息。回到ViewController不应触发此“ hello”打印。

以下是我已经很累的内容,但是它似乎不起作用?

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)

    if self.isBeingPresented || self.isMovingToParent {
        print("hello")
    }
}

1 个答案:

答案 0 :(得分:1)

最稳定的方法是

var once = true

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated) 
    if once {
        print("hello")
        once = false
    }
}

self.isBeingPresented || self.isMovingToParen会根据您使用的地方给出意外的结果