我有一个使用故事板、导航控制器和自动布局的应用程序,在 io6 下运行良好,我希望能够在 ios6 和 ios7 下运行。
我已经使用 xcode5 转换了应用程序,现在它在 ios7 下运行良好,但是当我在 ios 6 下运行它时,导航栏和底部栏现在是透明的(它们最初不是)并且视图在它们下面流动 - 隐藏了一些控件. 即使我将 ios7 应用程序转换为不在这些条形下方流动(通过设置扩展边缘/顶部条形下方和底部条形下方关闭),这种情况仍然存在。
我已经通过允许 ios7 在条下流动视图(Apple 希望我们无论如何都要做)然后将以下代码添加到第一个视图控制器的 viewDidLoad 方法来强制 ios6 不使用透明条来解决它。
if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1) {
self.navigationController.navigationBar.barStyle = UIBarStyleBlackOpaque;
self.navigationController.toolbar.barStyle = UIBarStyleBlackOpaque;
}
这似乎有效,但我不明白为什么我需要这样做,我担心我错过了一些基本的东西。
编辑:我对这个“解决方案”的另一个担忧是,在 ios6 下的 xcode5 中的预览不能准确反映布局,因为它在 ios 6 下的模拟器下运行(我没有方便的真正的 ios6 设备来测试它眼下)。xcode5 中的新预览功能似乎假设 ios 6 不会在顶部和底部栏下流动视图,因此将控件挤压在一起以适应可用空间。
阿里