我想在应用程序变为活动状态或成为前台时在UIViewController中重新加载数据。
我知道在AppDelegate类中调用了applicationDidBecomeActive。
但是我必须为UIViewController提供一个全局变量,以将其数据重新加载到AppDelegate类中,如以下代码所示:
in AppDelegate.m
// global variable
UIViewController *viewController1;
UIViewController *viewController2;
-(void)applicationDidBecomeActive:(UIApplication *)application
{
[viewController1 reloadData];
[viewController2 reloadData];
}
但这很不方便,特别是当我有很多UIViewControllers时。
我可以在UIViewController中而不是AppDelegate类中使用applicationDidBecomeActive吗?
还是有比UIViewController拥有全局变量更好的方法?
我还需要使用UIViewControllers中的以下方法:
-(void)applicationWillResignActive:(UIApplication *)application
-(void)applicationDidEnterBackground:(UIApplication *)application
-(void)applicationWillEnterForeground:(UIApplication *)application
重新激活时,如果要为视图控制器携带特定物品,则应在其viewDidLoad
方法中注册一个通知。
UIApplicationDidBecomeActiveNotification
会自动通知您的应用程序和给定的控制器(如果他们已注册)。
[[NSNotificationCenter defaultCenter]addObserver:self
selector:@selector(yourMethod)
name:UIApplicationDidBecomeActiveNotification
object:nil];
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句