在像Foursquare这样的应用程序中,当我单击“主页”按钮时,应用程序将转到后台。然后,当我点击它的图标时,它会在屏幕上加载回内容。
当我将我的应用程序发送到后台然后我回想起它时,它不会将内容加载回屏幕。我已在viewDidAppear
方法中输入了我的代码,但未执行。
如何在应用程序内容变为活动状态时加载它?
答案 0 :(得分:5)
您需要回复- (void)applicationDidBecomeActive:(UIApplication *)application
或- (void)applicationWillEnterForeground:(UIApplication *)application
或同等的UIApplication
通知。 UIViewController
生命周期调用(如viewDidAppear
)不会被应用生命周期转换触发。
答案 1 :(得分:3)
UIApplicationDidBecomeActiveNotification
或UIApplicationWillEnterForegroundNotification
。在调用这些方法(smparkes编写的)之后调用这些通知。在此通知的处理程序中执行您想要的操作。例如,在viewDidLoad
中,您的控制器会注册以下通知:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(doUpdate:)
name:UIApplicationDidBecomeActiveNotification object:nil];
不要忘记删除dealloc
:
[[NSNotificationCenter defaultCenter] removeObserver:self];
最后,doUpdate
方法可以是以下
-(void)doUpdate:(NSNotification*)note
{
// do your stuff here...
}
我建议你阅读UIApplicationDelegate class reference。特别是阅读监控应用程序状态更改。
希望它有所帮助。
答案 2 :(得分:0)
假设您想要收听UIApplicationDidBecomeActiveNotification,这里有可能对您有帮助的ObjC代码。
[[NSNotificationCenter defaultCenter] addObserverForName:UIApplicationDidBecomeActiveNotification
object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *note) {
// custom code goes here.
}];