当应用程序处于活动状态或成为前台时,我想在UIViewController中重新加载数据.

我知道AppDelegate类中调用了ApplicationIDBecMeactive

in AppDelegate.m

// global variable
UIViewController *viewController1;
UIViewController *viewController2;

-(void)applicationDidBecomeActive:(UIApplication *)application
{
    [viewController1 reloadData];
    [viewController2 reloadData];
}

但这很不方便,尤其是当我有很多UIViewController的时候.

我可以在UIViewController中而不是在AppDelegate类中使用ApplicationIDBecMeactive吗

我还需要使用UIViewController中的以下方法:

-(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];

Objective-c相关问答推荐

Objective-C 中的实例变量是否默认设置为 nil?

在 Objective-C 中实现纯虚方法

Objective-C 和 Cocoa 有什么区别?

为什么我不用 * 声明 NSInteger

在 Xcode 中为无法识别的 Select 器创建断点

在 NSData 和 base64 字符串之间转换

如何删除应用程序指定目录中的所有文件?

如何获得本地化的 Cancel、Done 等?

为什么不鼓励使用伞式框架?

首次提交应用内购买以供审核

在字符串Objective-c中连接字符串

立即检测 iOS 方向变化

以编程方式查找 iphone 的语言环境货币

在 UITableView 中更改复选标记的 colored颜色

为什么 detailTextLabel 不可见?

字符串常量和字符串文字有什么区别?

UITableView 在半透明的导航栏下

即使在静音模式下也能在 iPhone 上播放声音

无法加载从设备上运行的包中的 nib 引用的图像

CALayer:仅在一侧添加边框