我正在编写一个应用程序,它从数据库中提取信息,显示在表格中,并允许用户通过从表格中选择一个项目来获取详细信息。每当表格更新时,列表中的值都是正确的,但表格显示旧信息(即,如果表格最初有 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 方法。我完全不知道为什么其他两个不打电话给他们。在此先感谢您的帮助。