viewDidAppear在pushViewController之后没有被调用

时间:2011-04-26 18:18:12

标签: cocoa-touch navigationcontroller pushviewcontroller viewdidappear

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

1 个答案:

答案 0 :(得分:0)

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