Как упоминал Вин, вы можете добавить его в метод applicationWillEnterForeground.Чтобы обновить ваш пользовательский интерфейс, вы можете установить для делегата приложения ссылку на ваши контроллеры представления и вызвать метод обновления оттуда.Или, что еще лучше, вы можете использовать NSNotificationCenter, чтобы просто уведомить другие классы об обновлении.
Если вы решили добавить ссылку на свой контроллер представления из делегата приложения, вам просто нужно создать свойство.Это один из способов сделать это.Однако обратите внимание, что это все еще зависит от структуры вашего проекта.
SampleAppDelegate.h
SampleViewController *viewController;
...
@property (nonatomic, retain) SampleViewController *sampleViewController;
...
SampleAppDelegate.m
...
@synthesize sampleViewController;
...
// don't forget to release in dealloc
[sampleViewController release]
...
Затем вы можете присвоить значение свойству sampleViewController делегата приложения, где бы вы ни загружали свой контроллер представления.Так, например, если вы инициализировали свой контроллер представления программно с помощью метода didFinishLaunchingWithOptions делегата приложения, просто назначьте его там.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
SampleViewController *_sampleViewController = [[SampleViewController alloc] initWithFrame:CGRectMake(0,0,320,480)];
self.sampleViewController = _sampleViewController;
[window addSubview:_sampleViewController.view];
[sampleViewController release];
[self.window makeKeyAndVisible];
return YES;
}
Если вы загрузили контроллер представления вне делегата приложения, вам потребуется доступделегат приложения через свойство делегата sharedApplication.
((SampleAppDelegate*)[UIApplication sharedApplication] delegate).sampleViewController = _sampleViewController;
Затем можно вызвать метод обновления из метода applicationWillEnterForeground.
- (void)applicationWillEnterForeground:(UIApplication *)application {
/*
Called as part of the transition from the background to the active state: here you can undo many of the changes made on entering the background.
*/
[self.sampleViewController updateMyView];
}