IOS4多任务下,viewWillAppear不能调用的问题解决 (转)
问题描述:原来在IOS3里面通过viewWillAppear来初始化画面数据,但是升级到IOS4后,在画面显示时直接按【home】键退出,再次进入时,画面并没有初始化最新的数据。
解决办法:添加下面代码
原因分析:由于IOS4支持多任务,应用程序按【home】是只是转到当前活动应用的后面,并没有退出,相当于画面暂停了,这里在程序转到后面时强制运行viewWillDisappear方法,返回活动应用时强制运行viewWillAppea
解决办法:添加下面代码
- - (void)applicationDidEnterBackground:(UIApplication *)application {
- /*
- Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
- If your application supports background execution, called instead of applicationWillTerminate: when the user quits.
- */
- [viewController.modalViewController viewWillDisappear:NO];
- }
- - (void)applicationWillEnterForeground:(UIApplication *)application {
- /*
- Called as part of transition from the background to the inactive state: here you can undo many of the changes made on entering the background.
- */
- [viewController.modalViewController viewWillAppear:NO];
- }
- (void)applicationDidEnterBackground:(UIApplication *)application { /* Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. If your application supports background execution, called instead of applicationWillTerminate: when the user quits. */ [viewController.modalViewController viewWillDisappear:NO]; } - (void)applicationWillEnterForeground:(UIApplication *)application { /* Called as part of transition from the background to the inactive state: here you can undo many of the changes made on entering the background. */ [viewController.modalViewController viewWillAppear:NO]; }
原因分析:由于IOS4支持多任务,应用程序按【home】是只是转到当前活动应用的后面,并没有退出,相当于画面暂停了,这里在程序转到后面时强制运行viewWillDisappear方法,返回活动应用时强制运行viewWillAppea