0

UITableViewController から別の UITableViewController へのプッシュ セグエがあります。オブジェクトは を介し​​て 2 番目の VC に渡されますprepareForSegue。2 番目の VC には、そのオブジェクトを編集するための UITextfield が存在します。オブジェクトは、2 番目の VC のtextFiedlDidEndEditingデリゲート メソッドで変更されます。デリゲート メソッドを作成するのではなく、単純に[self.tableView reloadData]最初の VC のviewDidAppearメソッドに配置して、オブジェクトを表示するテーブルを更新しました。

ユーザーが最初の VC に戻ったとき、 2 番目の VCが完了して新しいオブジェクトが設定されたviewDidAppear後にのみ、最初の VC が呼び出されるようにする必要があります。textFiedlDidEndEditingこのように動作しているように見えますが、これは偶然のためですか、それともviewDidAppear以前の VC のメソッドが実装された後にのみ呼び出されるためですか?

4

2 に答える 2

2

viewDidAppear最初のビューが画面に再表示されたときに呼び出されます。プログラムで2番目のView Controllerをポップするか、巻き戻しセグエを使用していると思います。このような場合は、電話してください

[textField resignFirstResponder];

あなたの2番目のVCで。

于 2012-10-01T22:20:10.150 に答える
1

textFieldDidEndEditingテキストフィールドの VC では、他の VC のviewWillAppearメソッドよりも前に確実に呼び出されるように、以下のコードを配置する必要がありました。

[self.view.window endEditing: YES];
于 2012-10-02T17:21:31.537 に答える