質問

素朴な疑問のソート。私はnavigationcontrollerでテーブルビューを持っています。私は、セルをタッチすると、それは、細胞からの情報でビューコントローラをプッシュので、私は新しいビューで編集することができます。今(: " - >プッシュのViewController rootviewcontroller" 我々はinformationpathそれを呼び出すことができます)正しい作業のthats。編集された値がテーブルビューで表示することができますので、 - :私は新しいビューの保存]をクリックしたときに、私はpopviewcontroller(「> rootviewcontrollerプッシュのViewController」informationpath)を呼び出す前に、しかし、私はrootviewcontrollerへの旅行バックに編集した値を求めています。

をいただきました!これへの正しいアプローチ?

EDITます:

pushViewControllerとpopViewControllerが働いています。私は唯一の保存ボタン(popViewController)が呼び出されたときに、テーブルビューで表示するためrootViewControllerに編集された情報の背中を取得するための最善のアプローチを求めました。私はちょうど編集に直接プッシュのViewControllerからの新しい情報でPLISTを持っていますね。私はrootViewControllerに新しい情報を送信好むだろうけれども、それはPLISTファイルへのアクセスを処理します。

役に立ちましたか?

解決

2 tableviews -

私は同じような状況があります。最初のTVディスプレイデータベースレコードのリストと、1がタップされたときには、レコードの詳細を表示する第2テーブルビューに通過します。私は、ナビゲーションコントローラのスタックに詳細TableViewControllerを押すことによってこれを行います。これまでのところに行くと非常に簡単ます。

遭遇した問題の私はそれがレコードのリストを更新することができることを、詳細テーブルビュー(コントローラ)のレコードを更新した後、私はリストテーブルビューコントローラを知ることができるように望んでいたものだった。

私が最初に行がレコードのリストで選択されたときに、リストコントローラは詳細コントローラにエンティティを管理するコアデータを渡すことができるように詳細テーブルビューコントローラにプロパティを追加することでした。

と同時に、私はまた、このようなコアデータ変更イベントのオブザーバーとしてリストコントローラを追加します

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(dataSaved:) name:NSManagedObjectContextDidSaveNotification object:nil];

詳細テーブルビューとコントローラ更新レコードは、リストコントローラがそれのdataSaved:メソッドが呼び出されたのであれば、NSNotificationオブジェクトを渡します。

dataSaved:法で

は、私は、オブジェクトを調べ、編集中のコア・データ・エンティティが更新されたリストにある場合、私は更新が必要とされるシグナリングするフラグを設定します。挿入されたリスト内のレコードがある場合しかし、それはフラグがリストテーブルビューの完全な再読み込みをトリガするように設定されているように、新しいレコードは、作成され、データベースに挿入されたことを意味します。

リストビューコントローラにユーザが戻るが、viewDidAppear:方法がトリガされます。この方法では、私は、フラグのいずれかの呼び出し

を調べます
- (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation

レコードが更新された場合、特定のレコードをリロードする、または新しいレコードの挿入がある場合、完全な再読み込みを行うには、テーブルビューを伝えるために。

最後に、それはもはや興味を持っているので、私はその後、コアデータの通知のオブザーバとしてリストコントローラを削除しません。

これは、これを行うために推奨される方法であれば、私は知らないが、これまでのところ、それは私のために働いています。

他のヒント

あなたはpopViewController前にreloadDataに試すことができますが、あなたには、いくつかのコードをポストする必要があります。

すべてのUIViewControllersはnavigationControllerメソッドを持っています。あなたはナビゲーションコントローラにビューコントローラをプッシュすると、そのプロパティは、ナビゲーションコントローラをポイントに設定されています。

ですから、ビューコントローラでちょうどコール[self.navigationController popViewControllerAnimated:YES];ます。

また、混同しないビューとView Controllerを行います。あなたはビュー内の[保存]をクリックすると、あなたは、保存ボタンあなたのビューコントローラ、ナビゲーションコントローラにターン会談でます。

のメソッドを呼び出すことを確認する必要があります
あなたは適切な情報で新しいビューしようとしている行をタップするには、

ここでは、そのようなデータの編集など、いくつかの操作を行います。 だから、最初の(IBActionを呼び出すことによって)保存ボタンをクリックした上で、変更を保存して、このIBActionメソッドで(変更が正常に保存されている)wheterチェックしますし、

を呼び出します

[self.navigationController popViewControllerAnimated:YES];

と、(viewWillAppear方法でデータベースメソッドを呼び出して、このデータの変更アレイのため)が更新現在データベースによってそのテーブルのリロード自体を確実。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top