我在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的大小存在差距......
现在我需要找出为什么会出现这种行为,以及如何摆脱它......如果你对这个问题有任何想法,请提前感谢!
答案 0 :(得分:0)
我发现只是隐藏了navigationController工具栏就行了......
[self.navigationController.toolbar hide];
PS:MMDrawerController错误?