假设我有两个viewcontrollers A和B.从A到B,我在顶部添加了viewcontroller B.在弹出时,我在B中调用以下方法
-(void)viewWillDisappear:(BOOL)animated{
[super viewWillDisappear:animated];
NSUserDefaults *userSettings = [NSUserDefaults standardUserDefaults];
[userSettings setObject:firstName.text forKey:@"FN"];
[userSettings setObject:lastName.text forKey:@"LN"];
[userSettings synchronize];
}
此userInfoUpdate方法更新应用程序的NSUserDefaults对象。 在返回viewcontroller A时,我在A:
中调用以下方法- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
NSUserDefaults *userSettings = [NSUserDefaults standardUserDefaults];
profileTextField.text = [NSString stringWithFormat:@"%@ %@",[userSettings objectForKey:@"FN"],[userSettings objectForKey:@"LN"]];
}
但是这不会更新textfiled字符串。知道我在这里做错了吗?还有更好的选择吗?
答案 0 :(得分:1)
我建议创建一个充当数据模型的类,可以在2个控制器之间共享。这样您就不必担心Viewcontroller委托功能顺序。
@interface DataModel: NSObject
{
NSString *firstName;
NSString *lastName;
}
包含DataModel的对象:
@interface AVC:UIViewController
@property (nonatomic, strong) DataModel *myDataModel
当A创建B并传递myDataModel以由B更新并将其保存在viewDidDissapear中时。
A现在可以在视图中恢复时更新,并且还可以在应用启动和升级中保存
答案 1 :(得分:0)
您不能调用[userSettings synchronize]来保存它们。