處理這種情況的一種簡單而靈活的方法是從控制器公開一個方法來重置它。通過這種方式,在任何不可預見的情況下,您可以隨時調用此方法,知道你的價值觀正在建立:
@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。
'viewDidLoad'將在加載視圖後調用一次,這可能會超過一次控制器的生命週期。 – tia 2012-01-14 03:57:16
謝謝大家!我正在考慮重置函數的相同情況,所以現在它由 - (void)viewWillAppear:(BOOL)控制,並且每次都按照您的說法調用它。有一個控制面板視圖和一個窗體視圖,所以self.myController重置不適合在這裏。 – Harpua 2012-01-14 04:46:52