ios - 如何仅在第一次显示 View Controller 时触发 viewDidAppear 中的操作?

标签 ios swift

本质上,当 View 仅在应用程序首次加载时第一次出现时,我只想打印一次以下“hello”消息。 The ViewController can be shown again when a tab in a tab controller triggers it, but it should not print the message after the very first time.返回到 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 中的操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56873849/

相关文章:

ios - 推送通知在开发中不起作用

ios - YouTube 自动播放在 IOS 中的可能性

objective-c - 如何使用滑动手势从单元格 View 返回到 TableView

swift - 如何在 Swift 中增加字符串

ios - Firebase 电话身份验证verificationId 从未被设置。 ( flutter iOS)

ios - UIView、Swift 上的深度页面变换

json - Swift 4 JSONEncoder 中的字典键顺序

swift - RXSwift 简单的异步示例?

dictionary - 带有字典的 iOS 8.1 上的 EXC_BAD_ACCESS

swift - 为什么 Swift 的 enumerateSubstringsInRange 回调采用可选字符串?