iphone - ViewController 中的 UINavigationController, View 顶部的间隙

标签 iphone xcode ipad ios interface-builder

我正在开发一个通用应用程序,我正在尝试在 iPhone 和 iPad 版本之间共享尽可能多的代码。我需要使用 TabBarController 作为我的 Root View Controller ,虽然我想在每个选项卡中使用 SplitViewController,但 SplitViewController 的文档说它需要是 Root View Controller 。因此,考虑到所有这些 - 请理解我正在尝试并排放置两个导航 Controller 并(主要)复制 SplitViewController 的行为/布局。

一切正常,除了 View 的布局。当应用程序以纵向模式启动时,所有功能都会在设备方向发生变化时正确调整大小/位置。

portrait orientation

如果应用程序以 UIDeviceOrientationPortrait 以外的任何方向启动,则 View 在导航 Controller 上方显示 20 点间隙/边距。我试过在运行时调整框架,但没有完美的结果。将框架的 origin.y 调整为 -20 并将高度增加 20 会使 View 与其父 View 的顶部齐平,但在底部留下 20 点的差距!

landscape orientation

最佳答案

我在我的应用程序中解决了这个问题,方法是在添加导航 Controller View 后隐藏然后显示导航栏。例如。

[parentView addSubview:navController.view];
[navController setNavigationBarHidden:YES];
[navController setNavigationBarHidden:NO];

关于iphone - ViewController 中的 UINavigationController, View 顶部的间隙,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5183834/

相关文章:

iphone - 为什么单个 Vec4 乘法会使我的 ogl es 2 片段着色器减慢这么多?

iphone - 重新启动模拟器时添加的新视频文件将被删除

iphone - 动态刷新 NSMUTABLEArray 的内容

iphone - 通过 XIB 在 UIScrollView 中设置静态内容

objective-c - Xcode 5不导入崩溃文件?

objective-c - 跨不同平台管理 iOS 应用程序

iphone - NSScanner 行为

ios - 如何在 iOS 7 上使用游戏中心创建现场比赛?

iphone - 散点图在 iphone 中使用 Core-plot 突出显示的点

ios - Xcode 4.6 和 Xcode 5 安装在一起