2009-05-25 110 views
0

我的应用程序的主要功能由UITabBarController控制。不过,我需要加载一个具有UINavigationController的View。当我回到我的UITabBarController使用在UITabBarController和UINavigationController之间切换

 self.tabBarController.selectedViewController = [self.tabBarController.viewControllers objectAtIndex:0]; 

我的UITabBarController不再响应点击。看来这个视图没有重点。

但是,如果我用这个代码,切换回的UITabBarController:

[window addSubview:tabBarController.view] 

我的按钮会作出回应。我觉得像“addSubview”效率较低,因为我从不从窗口中删除视图,因此它必须将视图的第二个副本添加到堆栈。我对么?有没有办法使用第一种方法,并让我的按钮响应?请告诉我。

回答

1

这听起来像你可能错误地介绍了导航控制器。你绝对不应该直接添加视图到窗口。你想用

[myTabBarController presentModalViewController:myNavController animated:YES]; 

呈现它,当你与导航控制器做你

[myTabBarController dismissModalViewControllerAnimated:YES]; 

关闭它,一切都应该工作。

顺便说一句,这是在UIViewController和“视图控制器编程指南iPhone OS”文档的文档中记录的。

+0

n8gray ...你刚救了我的命。完善。我只是打开导航控制器错误。对此,我真的非常感激。您可能想要编辑帖子以删除该行中的短划线:[myTabBarController - dismissModalViewControllerAnimated:YES]; – Dave 2009-05-25 18:06:53

+0

糟糕!是的,你当然是对的。编辑。乐于帮助! – n8gray 2009-05-25 18:16:47

+0

Mayer你可以帮助我...每次我尝试'-dismissModalViewControllerAnimated:',我得到这个错误:'UIViewControllerHierarchyInconsistency',原因:'presentViewController为控制器本身是关闭: 2012-07-06 09:12:33