以下是该方案。我有4个视图控制器v1,v2,v3,v4,它们显示在iPhone的4个选项卡中(使用UITabbarcontroller)。现在我将另一个视图sv1推送到v1(当我查看v1时,我使用pushviewcontroller,如[appDelegate.nv pushViewController:sv1 animated:YES])。 nv是带有rootviewcontroller的UINavigationController init,v1。
现在,如果我按v2 tabbar(当我正在查看sv1时),然后按v1,我会看到sv1。但是,我不希望这种行为。我想显示v1而不是sv1。如何在单击v2时从其父视图中删除sv1?
我尝试过使用[self.navigationController popToRootViewControllerAnimated:NO];来自sv1的viewWillDisappear方法并且它不起作用(它回到v1但是所有搞砸了,就像未绘制导航栏并且v1的tabbar图标未显示,整个v1视图似乎被破坏了。)
有谁能让我知道如何解决这个问题?
感谢。
答案 0 :(得分:1)
您可以先阅读此内容:
Problem popping to root nav controller on tab bar switch
另外...... UITabBarController
符合定义的UITabBarDelegate
- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
您可以在那里拨打popToRootViewControllerAnimated
,而且看起来您的UINavigationController
可以从appDelegate