將關注默認值的視圖控制器註冊爲NSUserDefaultsDidChangeNotification的觀察者。當您收到通知時,從默認值中獲取該值並根據需要執行任何操作。
如果您只是簡單介紹一個模式化的視圖控制器,您可以在其中設置字符串,並且它是需要知道新值的父視圖控制器,那麼您可以在父視圖控制器上設置一個屬性並設置當你的模態視圖控制器被解僱。
我假設你在那裏的示例代碼是來自你的模態視圖控制器 - 這將不會影響呈現視圖控制器(你打電話給viewWillAppear在模態控制器上,因爲你正在解僱它,一個壞主意),viewWillAppear在視圖控制器關閉模態視圖控制器時不會調用它。
做我的第二個建議,在你的父視圖控制器的標題:
@property (nonatomic,copy) NSString *stringFromDefaults;
在.m文件:
@synthesize stringFromDefaults;
在你viewWillAppear中,您目前得到的值,分配在以物業代替:
self.stringFromDefaults = [[NSUserDefaults standardUserDefaults] stringForKey:@"stringValue"];
從您的模態視圖控制器:
-(IBAction)goBack:(id)sender
{
[(ParentViewController*)self.parentViewController setStringFromDefaults:newStringValue];
[self dismissModalViewControllerAnimated:YES];
}
其中newStringValue
是您還保存在默認值中的更新字符串值。
對不起,我是新的Objective-C,所以我正在學習..在哪種方式,我可以在父視圖控制器上的屬性,並設置爲我的模態視圖控制器被解僱? – JackTurky
查看更新的答案 – jrturton