viewDidAppear在Tabbarcontroller中没有触发> NavigationController> UITableView

时间:2009-10-30 20:08:39

标签: uinavigationcontroller uitabbarcontroller viewdidappear

我目前在其中一个选项卡上设置了一个带有导航控制器的标签栏控制器,然后我为该Navigationcontrollers视图设置了一个UITableView笔尖。所有这一切都是通过IB建立的,我希望保持这种方式。有点像这个教程http://twilloapp.blogspot.com/2009/05/how-to-embed-navigation-controller.html  现在视图在调用ViewDidLoad时完全加载。但是当我然后通过代码IE加载进一步的视图

MyApp_AppDelegate *delegate = [[UIApplication sharedApplication] delegate];

UINavigationController *nav = (UINavigationController *)delegate.controller.selectedViewController;

newViewController = [[newViewController alloc] initWithNibName:@"newView" bundle:nil];

[nav pushViewController:newViewController animated:YES];

//At this point the view works! and loads

如果我尝试使用导航工具栏返回,它会回到我之前的视图 我回去时需要刷新tableview,但是调用viewDidAppear不起作用。

我尝试将UINavigationDelegate添加到与tableview相同的ViewController类,然后调用- (void)navigationController:(UINavigationController *)navigationController didShowViewController:

但那没用。我还尝试添加与标签栏控制器相同的委托,并在那里添加相同的navigationController didShowViewController:,但也失败了。

如何在每次加载视图时刷新此表?

2 个答案:

答案 0 :(得分:0)

您不必从代码中调用viewDidAppear。 Cocoa Touch应该为你做到这一点。

调用表视图的reloadData方法以使其刷新其内容。

答案 1 :(得分:0)

发现我在Interface文件中缺少Delegate声明。卫生署!我也在很多地方试过它,当我把它添加到NavigationControllers第一个视图(我的表格视图)时它才结束了工作