您可以使用NSNotificationCenter在您的視圖控制器中註冊一個通知,該通知在您輸入applicationDidEnterBackground或applicationWillTerminate時觸發。
因此,在其中的任意一種方法,你把東西像
[[NSNotificationCenter defaultCenter] postNotificationName:@"someDescriptiveName" object:self userInfo:@{@"key" : @"value"}];
USERINFO期望一個NSDicitonary,你可以通過它的任何類型的對象,在那裏,你的情況,你不需要回從這裏通過什麼你的視圖控制器,你只是用它來讓你的視圖控制器知道應用程序正在關閉。
在視圖控制器,你能夠爲這一通知,像這樣
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(methodToCall:) name:@"someDescriptiveName" object:nil];
寄存器,然後只要你的appDelegate張貼通知,其註冊您的視圖控制器來監聽它會火過「methodToCall」這可以是你正確地做任何事情的一種方法,它需要一個nsnotification,然後讓你訪問nsdicitonary它的攜帶。
- (void)methodToCall:(NSNotification *)notif{
NSLog(@"methodToCall fired with data %@",[[notif userInfo]valueForKey:@"key"]);}
的回答你的問題取決於你在做什麼真的很想做。 您試圖在主視圖控制器中訪問的NSString屬性?你是否需要保存應用程序委託中的NSString數據,或者是否可以在主視圖控制器中編寫一個方法來保存該NSString(例如,如果您從應用程序委託向所有觀察者發送了通知,以便保存數據) – 2015-04-01 17:56:20
做這個通知的事情?我認爲這是我需要的。 @MichaelDautermann – Nir 2015-04-01 17:58:46