实际上,我只想在应用程序第一次加载时,当视图第一次出现时,打印一次下面的“hello”消息。当选项卡控制器中的选项卡触发时,可以再次显示ViewController,但它不应在第一次之后打印消息。返回ViewController不应该触发这个“hello”来打印。
以下是我已经累了,但似乎不起作用?

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

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

最佳答案

最稳定的方法是

var once = true

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

因为self.isBeingPresented || self.isMovingToParen可以根据您使用它的位置给出意外的结果

关于ios - 如何仅在第一次显示 View Controller 时在viewDidAppear中触发 Action ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56873849/

10-13 00:59