1

私は、データベースから情報を取得し、テーブルに表示し、ユーザーがテーブルからアイテムを選択することで詳細を取得できるようにするアプリを作成しています。テーブルが更新されるたびに、リストの値は正しいですが、テーブルには古い情報が表示されます(つまり、テーブルに元々3つのアイテムがあり、現在は2つある場合、テーブルには元の3つのアイテムが表示されますが、ユーザーがしようとすると壊れます。 3番目の項目をタップします)。詳細ビューでも同じ問題が発生します。ユーザーが1つの値を選択すると、その情報の表示が変わります。戻って新しい値を選択すると、ビューは変更されますが、最初の選択からの情報が表示されます。私は、これらの両方が表示されたときにviewDidAppearを呼び出さないビューに起因すると考えています。ナビゲーションコントローラーを使用してビューをロードしていますが、まだメソッドを呼び出していません。

これが私のlistViewの表示方法です:UITableViewController

-(IBAction)viewInventoryClicked:(id)sender {
    [DBHelper getAllBottles:[appDelegate getDBPath]];
    if(self.viewList == nil) {
          //instantiate view
    }

    [appDelegate.navigationController viewWillDisappear:YES];
    [appDelegate.navigationController pushViewController.self.viewList animated:YES];
}

私のdetailsView(UIViewController)も同様の方法で表示されます。ナビゲーションコントローラーはAppDelegateにあります。メインウィンドウには次のものがロードされます。

[self.window addSubview:navigationController.view];
[self.window makeKeyAndVisible];

mainWindowと私のModalViewは、どちらもviewDidAppearメソッドを正常に呼び出しています。私はこれらの他の2人がなぜ彼らを呼んでいないのか完全に困惑しています。助けてくれてありがとう。

4

1 に答える 1

0

私はそれを考え出した。問題は、ビューを変更する方法ではなく、インターフェイスの設定方法にありました。以前のビューの*.xibではなく、MainWindow.xibにすべてのviewControllerがありました。

于 2011-04-28T15:26:25.890 に答える