在常见的iPhone配置中,我的应用程序的主窗口是一个包含多个UINavigationController的标签栏控制器。我现在的绊脚石是同时推动和更换控制器:似乎我可以按顺序执行两个操作,但是我必须再次按下选项卡才能更新视图。
例如,我在标签1上,我有一个按钮,它将在标签2上加载我想立即呈现的新视图。代码是
tabController.selectedViewController = myListsController;
EditListViewController * editController = [[EditListViewController alloc] initWithList:l];
[myListsController.navigationController pushViewController:editController animated:YES];
使用此代码,会显示新选项卡,但我看不到新视图。可以这样做吗?
答案 0 :(得分:1)
如果您只有2个标签视图(并且myListsController.navigationController
是第二个标签的根目录),您可以这样做:
UINavigationController *nc = myListsController.navigationController;
EditListViewController *editController = [[EditListViewController alloc] initWithList:l];
[myListsController.navigationController setViewControllers:
[NSArray arrayWithObjects:[[nc viewControllers] objectAtIndex:0],editController,nil]];
NSMutableArray *vcs = [[tabController viewControllers] mutableCopy];
[vcs replaceObjectAtIndex:1 withObject:nc];
[tabController setViewControllers:vcs];
[vcs release];
[self.tabController setSelectedIndex:1];
答案 1 :(得分:0)
尝试
-(void)viewWillAppear:(BOOL)animated {
//your code
}
在你的Viewcontroller类中。