我在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- Root视图控制器再次移除uitabbar高度以计算其高度
所以根视图控制器得到“窗口大小- uitabbar高度- uitabbar高度”。这就是为什么会有一个uitabbar大小的间隙...
现在我需要找出为什么会有这样的行为,以及如何摆脱它。如果你对这个问题有任何想法,提前感谢!
发布于 2014-12-30 11:37:32
我发现只需隐藏navigationController工具栏就行了……
[self.navigationController.toolbar hide];
PS: MMDrawerController错误?
https://stackoverflow.com/questions/18961786
复制