我的主视图包含指向不同viewcontrollers的链接。我的一个视图有一些表单字段,当它们成功更新时,它会调用UIAlertView
来通知用户。当用户解散时,会调用alertView:clickedButtonAtIndex:
并将dismissModalViewControllerAnimated:
返回到我的主视图。
我遇到的问题是,当我这样做时,它不会调用viewDidLoad
方法。我有需要更新的变量,有人可以告诉我什么是被调用。我找不到任何东西,以便我可以进行更新。
答案 0 :(得分:1)
viewWillAppear
和viewDidAppear
。您可以检查这些功能中的数据是否已更新,并相应地更新您的视图。
答案 1 :(得分:0)
处理这种情况的一种简单而灵活的方法是从控制器中公开一个方法来重置它。这样,在任何无法预料的情况下,您始终可以调用此方法并知道您的值已设置:
@interface MyController
- (void)reset;
@end
@implementation MyController
- (void)reset{
//set some defaults
}
- (void)viewDidLoad{
[self reset];
}
- (void)viewWillAppear{ //<--If you want to reset your values every time the view is about to appear
[self reset];
}
- (void)viewDidDisappear{ //<--If you want to reset your values every time the view is either dismissed, covered, or hidden
[self reset];
}
@end
然后在alertView:clickedButtonAtIndex:
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
if (buttonIndex==0) { //whatever your situation is
//dismissModalViewControllerAnimated:
[self.myController reset];
}
}
一些额外的阅读:UIViewController。