viewWillAppear 和 viewDidLoad 中的方法未加载
Method in viewWillAppear and viewDidLoad didn't loaded
我在 viewcontroller 中创建了一个检查服务器状态的方法,我需要在每次打开应用程序时检查它。
我从 viewWillAppear 和 viewDidLoad 调用了 [self checkStatus];
,但是当我打开应用程序时,通过单击主页按钮,我尝试再次打开应用程序(单击应用程序中的应用程序图标),这个方法没有被调用.我有一个 NSLog 可以查看它何时启动。
我很沮丧。感谢您的帮助。
iOS
不是再次调用那些方法,而是AppDelegate
中的委托方法。然后你必须将消息传播到你的控制器。
您可以使用 NotificationCenter
对应用程序更改做出反应:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(doSomething:) name:UIApplicationDidBecomeActiveNotification object:nil];
顺便说一句:不要忘记在不需要的时候removeObserver
!
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationDidBecomeActiveNotification object:nil];
你也可以使用UIApplicationWillEnterForegroundNotification
等,看你需要什么。
您应该在 Apple Developer 页面上阅读有关应用程序生命周期的信息:)。阅读:
AppleDeveloperLink 特别是部分:"Execution States for Apps" 了解更多关于应用程序生命周期的信息。
WhosebugLink 了解更多关于视图生命周期的信息。
我在 viewcontroller 中创建了一个检查服务器状态的方法,我需要在每次打开应用程序时检查它。
我从 viewWillAppear 和 viewDidLoad 调用了 [self checkStatus];
,但是当我打开应用程序时,通过单击主页按钮,我尝试再次打开应用程序(单击应用程序中的应用程序图标),这个方法没有被调用.我有一个 NSLog 可以查看它何时启动。
我很沮丧。感谢您的帮助。
iOS
不是再次调用那些方法,而是AppDelegate
中的委托方法。然后你必须将消息传播到你的控制器。
您可以使用 NotificationCenter
对应用程序更改做出反应:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(doSomething:) name:UIApplicationDidBecomeActiveNotification object:nil];
顺便说一句:不要忘记在不需要的时候removeObserver
!
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationDidBecomeActiveNotification object:nil];
你也可以使用UIApplicationWillEnterForegroundNotification
等,看你需要什么。
您应该在 Apple Developer 页面上阅读有关应用程序生命周期的信息:)。阅读:
AppleDeveloperLink 特别是部分:"Execution States for Apps" 了解更多关于应用程序生命周期的信息。
WhosebugLink 了解更多关于视图生命周期的信息。