温馨提示:本文翻译自stackoverflow.com,查看原文请点击:ios - How to trigger an action in viewDidAppear only the first time a view controller is shown?
ios swift

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

发布于 2020-03-27 12:04:03

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

以下是我已经很累的东西,但是似乎没有用?

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

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

查看更多

查看更多

提问者
user11349745
被浏览
156
Sh_Khan 2019-07-03 23:55

最稳定的方法是

var once = true

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

由于self.isBeingPresented || self.isMovingToParen可以根据您使用的地方给出意想不到的结果