iOS 7中导航控制器及其根视图控制器的奇怪行为

时间:2013-09-23 14:23:58

标签: iphone ios uinavigationcontroller ios7 xcode5

我在iOS 7中遇到导航控制器及其根视图控制器的奇怪行为。目标是使用滑动菜单,如MMDrawerController(http://github.com/mutualmobile/MMDrawerController/)或ECSlidingViewController(http://github.com/edgecase/ECSlidingViewController)。

对于他们两个,我的中心主视图存在底部间隙问题(如截图所示)。在这两种情况下,我都使用" storyboard instantiateViewControllerWithIdentifier"检索我的控制器,所以我认为问题来自这里。

导航控制器框架(中央主视图)没问题。但是这个导航控制器的根视图控制器得到了错误的帧高......

在iOS6和Xcode4中一切都很好,问题出现在iOS7和Xcode5中。我已经修复了"扩展边缘"对于所有应用程序,只有这个导航控制器遇到了这个问题......

经过更多调查,似乎问题是uitabbar的高度被删除了两次:

1 - ECSlidingViewController删除uitabbar高度以计算其自身的高度

2 - ECSlidingViewController将导航控制器作为中心主视图加载其框架

3 - 导航控制器加载其根视图控制器

4 - 根视图控制器再次移除uitabbar高度以计算其高度

因此Root视图控制器得到"窗口大小 - uitabbar height - uitabbar height"。 这就是为什么uitabbar的大小存在差距......

现在我需要找出为什么会出现这种行为,以及如何摆脱它......如果你对这个问题有任何想法,请提前感谢!

problem 1 problem 2

1 个答案:

答案 0 :(得分:0)

我发现只是隐藏了navigationController工具栏就行了......

[self.navigationController.toolbar hide];

PS:MMDrawerController错误?