我有一个UIViewController
管理一些数据的显示.当用户想要编辑这些数据时,我将编辑推UIViewController
送到堆栈.当用户完成编辑时,顶部视图控制器从堆栈中弹出.在弹出编辑视图后,我知道需要更新显示的最优雅方式是什么?
我认为我可以将内容更新代码放入viewDidLoad
我的数据视图的方法中,但是当我的视图显示时,并不总是调用此方法,尤其是当我在视图堆栈中向下导航时.
我还考虑将我的数据视图控制器设置为UINavigationController
等待– navigationController:didShowViewController:animated:
被调用的委托,我担心的是可能有其他视图控制器在显示时需要通知它会变成一个轻微的头痛管理哪个控制器应该接收didShowViewController
消息.
我认为viewWillAppear会做到这一点.
否则,您的编辑视图控制器可以调用指向父控制器的新委托方法.在那里,您可以更新数据模型并显示.例如:
- (BOOL)textFieldShouldReturn:(UITextField *)textField { if ([delegate respondsToSelector:@selector(editEntryByTitle:)]) [delegate performSelector:@selector(editEntryByTitle:) withObject: textField.text]; [textField resignFirstResponder]; [self dismissModalViewControllerAnimated:YES]; return YES; }