ViewDidAppear和textFiedlDidEndEditing控制流程

时间:2012-10-01 21:32:12

标签: iphone ios uitableview uitextfield

我有一个从UITableViewController到另一个UITableViewController的push segue。对象通过prepareForSegue传递给第二个VC。第二个VC中存在一个UITextfield来编辑该对象。在第二个VC的textFiedlDidEndEditing委托方法中修改了该对象。我只是将[self.tableView reloadData]放在第一个VC的viewDidAppear方法中,而不是创建委托方法,以更新显示对象的表。

当用户导航回第一个VC时,我需要确保只有在第二个VC的viewDidAppear完成后才会调用第一个VC中的textFiedlDidEndEditing并设置新对象。它似乎是以这种方式工作,但这是因为偶然或因为viewDidAppear仅在前一个VC的方法实现之后被调用?

2 个答案:

答案 0 :(得分:2)

当您的第一个视图重新出现在屏幕上时,将调用

viewDidAppear。我假设您以编程方式弹出第二个视图控制器或使用展开segue。如果是这种情况,请致电

[textField resignFirstResponder];

在你的第二个VC中。

答案 1 :(得分:1)

在textfield的VC中,我必须放置以下代码,以确保在任何其他VC的textFieldDidEndEditing方法之前调用viewWillAppear

[self.view.window endEditing: YES];