ios 模拟器 viewDidLoad、viewDidAppear 在关闭或退出后未调用
ios simulator viewDidLoad, viewDidAppear not called after close or quit
我的应用程序有一个视图控制器和一个视图。当我从 xcode 在模拟器上 运行 我的应用程序时,应用程序加载并按预期调用 viewDidLoad
、viewDidAppear
。
当我转到模拟器主屏幕然后返回应用程序时,
我希望 viewDidLoad
被调用,但实际上没有。
当我退出
关注 these directions 应用程序,然后重新启动应用程序,我
希望这两种方法都被调用,但都没有被调用。
如果这些事件没有触发那些调用,那么什么会触发这些调用?
很难相信在真实设备上,viewDidLoad 只被调用一次 - 第一次加载应用程序时。
它说 "load"。它的字面意思是在加载(实例化)视图控制器时调用它。当视图出现时也会调用 "appear",就像您按下它或关闭其上方的其他视图控制器时一样。
你想要的是注册以下通知
static let UIApplicationWillEnterForeground: NSNotification.Name
static let UIApplicationDidEnterBackground: NSNotification.Name
static let UIApplicationDidBecomeActive: NSNotification.Name
在您的视图控制器的 viewDidLoad() 中添加通知。
NotificationCenter.default.addObserver(self, selector: #selector(ViewController.applicationDidBecomeActive), name: NSNotification.Name.UIApplicationDidBecomeActive, object: nil)
然后当应用程序从后台再次激活时将调用以下方法。
func applicationDidBecomeActive() {
// Update your view controller
}
案例二:
如果您按照说明退出应用程序,调试会话将终止,因此断点和日志将不起作用。如果您退出您的应用程序并想要检查断点或日志,您需要在 Xcode.
中再次点击 运行
我的应用程序有一个视图控制器和一个视图。当我从 xcode 在模拟器上 运行 我的应用程序时,应用程序加载并按预期调用 viewDidLoad
、viewDidAppear
。
当我转到模拟器主屏幕然后返回应用程序时, 我希望
viewDidLoad
被调用,但实际上没有。当我退出 关注 these directions 应用程序,然后重新启动应用程序,我 希望这两种方法都被调用,但都没有被调用。
如果这些事件没有触发那些调用,那么什么会触发这些调用? 很难相信在真实设备上,viewDidLoad 只被调用一次 - 第一次加载应用程序时。
它说 "load"。它的字面意思是在加载(实例化)视图控制器时调用它。当视图出现时也会调用 "appear",就像您按下它或关闭其上方的其他视图控制器时一样。
你想要的是注册以下通知
static let UIApplicationWillEnterForeground: NSNotification.Name
static let UIApplicationDidEnterBackground: NSNotification.Name
static let UIApplicationDidBecomeActive: NSNotification.Name
在您的视图控制器的 viewDidLoad() 中添加通知。
NotificationCenter.default.addObserver(self, selector: #selector(ViewController.applicationDidBecomeActive), name: NSNotification.Name.UIApplicationDidBecomeActive, object: nil)
然后当应用程序从后台再次激活时将调用以下方法。
func applicationDidBecomeActive() {
// Update your view controller
}
案例二:
如果您按照说明退出应用程序,调试会话将终止,因此断点和日志将不起作用。如果您退出您的应用程序并想要检查断点或日志,您需要在 Xcode.
中再次点击 运行