2012-01-18 6 views
0

飛び出るときに私は私が(コアデータについて学ぶために)種類のコンタクトリストを作成しようとしていますiOSの5のiOS 5 viewWillAppearはNavigationController

を使用してiPhoneアプリケーションを開発するために勉強してい呼び出されていません。

UINavigationControllerにはUITableViewが埋め込まれています(これはエディタ - >埋め込み型 - >ナビゲーションコントローラで行いました)。すべての連絡先を一覧表示のUITableViewに接触作成フォームから移動するには

[self.navigationController popViewControllerAnimated:YES]; 

:私はラインを持っている私のsaveContactアクションの終わりに

。連絡先を取得するコードはviewWillAppearです。

問題は、連絡先作成フォームがポップアップしたときに、新しい連絡先がリストに表示されないという問題です。

アップルの文書でUINavigationControllerDelegateUITableViewControllerに追加する必要があることがわかりましたが、成功しませんでした。

提案がありますか?

答えて

1

UITableViewControllerUINavigationControllerプロトコルのnavigationController:willShowViewController:animated:メソッドを実装し、ナビゲーションコントローラのデリゲートをテーブルビューコントローラに設定する必要があります。メソッドの実装では、表示されるビューがビューと等しいかどうかを確認し、結果がフェッチされているかどうかを確認します。

実際にコアデータをテーブルビューと統合する場合は、NSFetchedResultsControllerを調べることをおすすめします。バッキングデータストアの更新処理が簡単になるため、後でバックグラウンド同期機能を追加すると、バックグラウンドスレッドがストアを継続的に更新し、NSFetchedResultsControllerがテーブルの更新を処理できます。また、現在の例を簡単にするには、コアデータに​​を送信してから、結果コントローラでviewWillAppear:メソッドを使用せずにテーブルを更新し始めます。

+0

デリゲートの設定方法ナビゲーションコントローラ? –

+0

'delegate'はUiNavigationControllerクラスのプロパティなので、テーブルビューコントローラの' viewDidLoad'メソッドでは、テーブルコントローラをナビゲーションコントローラのデリゲートとして設定します(self.navigationController.delegate = self)。 –

+0

動作しませんでした。ここに私のコードのペーストリーがあります:http://pastie.org/3209337とhttp://pastie.org/3209343。あなたはそれを見て、おそらく正しい方向に私を向けることができますか? –