我创建了一个方法来检查我的viewcontroller中服务器的状态,每次打开应用程序时都需要检查一下。
我从viewWillAppear和viewDidLoad调用[self checkStatus];
,但是当我打开应用程序时,通过单击主页按钮,我尝试再次打开应用程序(单击应用程序中的应用程序图标),不会调用此方法。我有一个NSLog可以查看它何时启动。
我很沮丧。谢谢你的帮助。
答案 0 :(得分:3)
您可以使用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特别是部分:"应用的执行状态" 了解有关应用生命周期的更多信息。
StackOverflowLink了解有关视图生命周期的更多信息。
答案 1 :(得分:1)
iOS
没有再次调用这些方法,而是AppDelegate
中的委托方法。您必须将消息传播到控制器。
我希望这会对您有所帮助:https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIApplicationDelegate_Protocol/