我正在开发一个通用应用程序,我正在尝试在 iPhone 和 iPad 版本之间共享尽可能多的代码。我需要使用 TabBarController 作为我的 Root View Controller ,虽然我想在每个选项卡中使用 SplitViewController,但 SplitViewController 的文档说它需要是 Root View Controller 。因此,考虑到所有这些 - 请理解我正在尝试并排放置两个导航 Controller 并(主要)复制 SplitViewController 的行为/布局。
一切正常,除了 View 的布局。当应用程序以纵向模式启动时,所有功能都会在设备方向发生变化时正确调整大小/位置。
如果应用程序以 UIDeviceOrientationPortrait 以外的任何方向启动,则 View 在导航 Controller 上方显示 20 点间隙/边距。我试过在运行时调整框架,但没有完美的结果。将框架的 origin.y 调整为 -20 并将高度增加 20 会使 View 与其父 View 的顶部齐平,但在底部留下 20 点的差距!
最佳答案
我在我的应用程序中解决了这个问题,方法是在添加导航 Controller View 后隐藏然后显示导航栏。例如。
[parentView addSubview:navController.view];
[navController setNavigationBarHidden:YES];
[navController setNavigationBarHidden:NO];
关于iphone - ViewController 中的 UINavigationController, View 顶部的间隙,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5183834/