在UITabBarController和UINavigationController之间切换
问题描述:
我的应用程序的主要功能由UITabBarController控制。不过,我需要加载一个具有UINavigationController的View。当我回到我的UITabBarController使用在UITabBarController和UINavigationController之间切换
self.tabBarController.selectedViewController = [self.tabBarController.viewControllers objectAtIndex:0];
我的UITabBarController不再响应点击。看来这个视图没有重点。
但是,如果我用这个代码,切换回的UITabBarController:
[window addSubview:tabBarController.view]
我的按钮会作出回应。我觉得像“addSubview”效率较低,因为我从不从窗口中删除视图,因此它必须将视图的第二个副本添加到堆栈。我对么?有没有办法使用第一种方法,并让我的按钮响应?请告诉我。
答
这听起来像你可能错误地介绍了导航控制器。你绝对不应该直接添加视图到窗口。你想用
[myTabBarController presentModalViewController:myNavController animated:YES];
呈现它,当你与导航控制器做你
[myTabBarController dismissModalViewControllerAnimated:YES];
关闭它,一切都应该工作。
顺便说一句,这是在UIViewController和“视图控制器编程指南iPhone OS”文档的文档中记录的。
n8gray ...你刚救了我的命。完善。我只是打开导航控制器错误。对此,我真的非常感激。您可能想要编辑帖子以删除该行中的短划线:[myTabBarController - dismissModalViewControllerAnimated:YES]; – Dave 2009-05-25 18:06:53
糟糕!是的,你当然是对的。编辑。乐于帮助! – n8gray 2009-05-25 18:16:47
Mayer你可以帮助我...每次我尝试'-dismissModalViewControllerAnimated:',我得到这个错误:'UIViewControllerHierarchyInconsistency',原因:'presentViewController为控制器本身是关闭:
2012-07-06 09:12:33