2014-10-21 2 views
0

Есть способ оповестить объект, когда метод «applicationDidEnterBackground» делегата приложения вызывается, но только получает объект applicationObject.приложение входит в фон IOS?

Мне нужно сделать некоторые действия, когда приложение попадает на фон, но у меня есть доступ к объекту приложения через «[UApplication sharedApplication]».

Примечание: Мне нужны эти 3 метода applicationWillTerminate, applicationWillEnterForeground, applicationDidEnterBackground, но я не могу получить доступ к методам applicationDelegate.

+0

Эти методы должны быть в «AppDelegate.m». Можете ли вы уточнить свой вопрос? –

+0

вопрос обновлен. – BlaShadow

+0

Морган прав, все эти методы доступны в AppDelegate.m. – ZAZ

ответ

1

Вы можете использовать NSNotificationCenter, чтобы сообщить классу, что эти методы вызывают. В INIT зарегистрировать правильное уведомление:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationWillTerminateNotification:) name:UIApplicationWillTerminateNotification object:nil]; 

Это будет вызывать метод этот метод, который вы должны добавить в вас классе:

- (void)applicationWillTerminateNotification::(NSNotification *)notifictaion{ 
} 

Уведомление, что вы хотите добавить в : UIApplicationWillTerminateNotification, UIApplicationWillEnterForegroundNotification и UIApplicationDidEnterBackgroundNotification

не забудьте незарегистрированного экземпляр, класса в dealloc вас класс, даже в ARC:

-(void) dealloc { 
    [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationWillTerminateNotification object:nil]; 

} 
+0

Идеально: D работает как шарм !!! – BlaShadow

0

У меня была аналогичная проблема. Мое решение было получить экземпляр AppDelegate и зарегистрировать объект в качестве наблюдателя:

AppDelegate* appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate]; 
[appDelegate addApplicationDidEnterBackgroundObserver:myobject]; 
// and later... 
[appDelegate removeObserver:myobject]; 

уверен, что решение по rckoenes изящнее.

Смежные вопросы