我的应用有一个视图控制器和一个视图。当我从xcode在模拟器上运行我的应用时,应用程序会加载,viewDidLoad
,viewDidAppear
都会按预期调用。
当我进入模拟器主屏幕然后回到应用程序时,
我希望调用viewDidLoad
,但事实并非如此。
当我退出时 应用程序按照these directions,重新启动应用程序,我 期望调用这两种方法,但都不会被调用。
如果这些事件没有触发这些调用,那么触发这些调用的是什么? 很难相信在真实设备上,viewDidLoad只被调用一次 - 第一次加载应用程序。
答案 0 :(得分:3)
它说"加载"。它的字面意思是在加载(实例化)视图控制器时调用它。此外,"出现"在视图出现时调用,就像你按下或关闭它上面的其他视图控制器一样。
您想要的是注册以下通知
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
}
案例2:
如果您像指令一样退出应用程序,则会终止调试会话,因此断点和日志不起作用。如果您退出应用程序并希望检查断点或日志,则需要在Xcode中再次运行。