1

我目前在其中一个选项卡上设置了一个带有导航控制器的选项卡栏控制器,然后我为该导航控制器视图设置了一个 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到与ViewControllertableview 相同的类,然后调用- (void)navigationController:(UINavigationController *)navigationController didShowViewController:

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

每次视图加载时如何让这个表刷新?

4

2 回答 2

0

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

调用 table view 的reloadData方法来让它刷新它的内容。

于 2009-10-30T20:11:51.927 回答
0

发现我缺少接口文件中的委托声明。哦!我也在很多地方尝试过,当我将它添加到 NavigationControllers 的第一个视图(我的表格视图)时,它才最终起作用

于 2009-11-09T17:35:12.477 回答