1

我正在编写一个应用程序,它从数据库中提取信息,显示在表格中,并允许用户通过从表格中选择一个项目来获取详细信息。每当表格更新时,列表中的值都是正确的,但表格显示旧信息(即,如果表格最初有 3 个项目,现在有 2 个,表格将显示原来的 3 个项目,但如果用户尝试点击第三项)。我的详细信息视图也出现了同样的问题。如果用户选择一个值,则该信息的视图会发生变化。如果他们向后导航并选择一个新值,则视图会更改,但会显示第一次选择的信息。我将这两个归因于视图出现时未调用 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 方法。我完全不知道为什么其他两个不打电话给他们。在此先感谢您的帮助。

4

1 回答 1

0

我想到了。问题不在于我改变视图的方式,而在于我的界面设置方式。我的所有视图控制器都在 MainWindow.xib 中,而不是在之前视图的 *.xib 中。

于 2011-04-28T15:26:25.890 回答