2011-12-07 18 views
1

2つのtableViewがあり、1つはポップオーバーで最初に表示され、次に行が選択されるとdetailViewとして別のtableViewが表示されます。次に、detailTableViewでモデルを選択して更新します。その後、元のtableViewに戻ると、その行のデータは更新されません。iPhone上の設定アプリケーションのように、セルが選択されたときにUITableViewCellのラベルを更新する

私は、このPopoverコントローラのcontentViewControllerとしてUINavigationControllerを持っています。私は、detailTableViewをポップアップしたときに、そのセルのラベルをどのように更新できるかわかりませんでした。 TIA。

編集:基本的に、私は設定 - >場所に似た何かをしようとしています。 Locationsをクリックすると、詳細ビ​​ューが表示されます。場所をオフにすると、メインビューに場所 - >オフと表示されます。 Locationsがオンになっている場合、メインのTable ViewでLocations-> Onと表示されます。 cellForRowAtIndexPathで作成された行の参照を取得して、その行のラベルを変更する方法がわかっていれば、その行を参照する方法はわかりません。ありがとう。

編集:

以下のコードを追加しましたので、私は通知を送ることができることを理解し、私は、私は参照を持っていないので、私はmainTableViewに戻ったときに、その特定のセルを更新する方法がわかりません細胞にありがとう。私のcellForRowAtIndexPathで

else if ([indexPath section] == VERSION) { 
    cell = [tableView dequeueReusableCellWithIdentifier:@"VersionCell"]; 
    if (cell == nil) { 
     cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:@"VersionCell"] autorelease]; 
    } 
    NSArray *array = [[dmgr VersionDictionary] allKeysForObject:[NSNumber numberWithBool:YES]]; 
    cell.textLabel.text = [array objectAtIndex:0]; 
    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; 
} 
+0

スクリーンショットが表示されるのでしょうか?私はレイアウトによって混乱するようになってきています。 –

答えて

0

を更新していけません詳細、詳細は、

または

をデータが変更されたポップオーバーを知らせることができるようにあなたがポップオーバーのTVCを持つことができます通知のために登録し、その通知を詳細tvcに投稿させる。ポップオーバーはそれを受け取ると、それはあなたがポップオーバーのTVCが変化し、それがないとき、リロード実際のモデルデータにKVOリスナーも持つことができ、

または

をリロードします。

+0

あなたが提案している通知パターンを理解しています。私はテーブルのセルを更新する方法の基本的なことを見逃していると思う。 cellForRowAtIndexPathで作成されているので、テーブル内の特定のセルにアクセスする方法と同様です。 – Crystal

+0

[myTableView reloadData]はテーブル全体をリロードします。あるいは、更新するindexPath(行)を知る必要があります。行またはindexPathを知っている場合は、この方法でセルを取得できます。UITableViewCell * myCell = [myTableView cellForRowAtIndexPath];その後、あなたはそれがあなたが望む任意の方法でコンテンツを更新することができます。 – Rayfleck

0

なぜあなたはちょうどあなたがにポップオーバーのtableVCを渡すことにより、2つのテーブルビューコントローラを結びつけることができますいずれかの詳細ビューからデリゲートを送信し、最初のテーブルビュー

関連する問題