0

これは初心者の質問のように聞こえますが、同じ概念に固執しているアプリケーションがいくつかあります。私は3UIViewController秒あります:

  • UITableView1つ目は、 (別のアプリではコレクションビューである)ルートコントローラーです。
  • 2つ目は正常UIViewControllerで、ルートコントローラーで選択したアイテムの詳細を表示します。
  • 3つ目は、このオブジェクトのコンテンツを編集する編集コントローラーです。このコントローラーではAddViewController、新しいオブジェクトを追加するために使用するのと同じものを再利用します。

編集コントローラーから詳細1に戻っても、詳細には古いデータが表示されますが、節約はエラーなしでうまくいきます。再びルートに戻るまで、データは更新されません。

編集ビューからホットバックしたときに詳細ビューのデータが更新されるようにする方法を見つける必要があります。この問題は、私が現在取り組んでいる多くのアプリケーションで問題になっています。

任意の解決策をいただければ幸いです。

4

2 に答える 2

1

目標を達成するための最も簡単な方法は次のとおりです。編集コントローラー内で、詳細コントローラーに「詳細コントローラー様、コンテンツを更新しました。更新してください」と言う必要があります。。

どうやってするの?デリゲートまたは通知を設定し(どちらの場合も、詳細コントローラーが応答するか、編集コントローラーをリッスンします)、関心のあるデータに対して新しい新しい要求を実行し、インターフェイスを更新します。

PSでリクエストを実行したため、詳細コントローラは更新されないと思いますviewDidLoad。私が間違っている?あなたがいくつかのコードを提供するならば、私たちはあなたを助けることができます。

お役に立てば幸いです。

于 2012-10-08T20:28:07.407 に答える
0

これがルートのdidselectrowのコードです

 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    DetailnewViewController *detailViewController = [[DetailnewViewController alloc] initWithNibName:@"DetailnewViewController" bundle:nil];
    Card *selectedItem = (Card *)[[self fetchedResultsController] objectAtIndexPath:indexPath];
    detailViewController.itcard = selectedItem;
    detailViewController.managedObjectContext=self.managedObjectContext;
    detailViewController.view.backgroundColor=[UIColor orangeColor];
    [self.navigationController pushViewController:detailViewController animated:YES];
    [detailViewController release];
    [selectedItem release];


}

これがDetailnewviewcontrollerのコードです。あなたは正しいです。viewdidloadでリクエストを実行しています。

- (void)viewDidLoad
{
    cardnumberlabel.text=itcard.CardNumber;
    namelabel.text=itcard.Name;
    phonelabel.text=itcard.phonenumber;
    websitelabel.text=itcard.site;
}

返信ありがとうございます。ビューcのデリゲートを試してみます

于 2012-10-09T08:05:45.497 に答える