bob*_*ics 20 objective-c statusbar uiviewcontroller ios ios7
我看到当我将我的应用程序迁移到iOS 7时,在呈现视图控制器时导航栏出现在状态栏下.我想很多人都遇到过同样的问题.这是我所看到的截图:
新视图必须"模态"出现,即我需要presentViewController.
显示某种导航栏或工具栏,状态栏采用iOS 7样式导航栏的背景颜色.
它必须适用于iOS 6.
我正在使用xib来处理布局,并启用了autolayout.
呃,我们是否已经回到了iOS之前的5天并且没有框架?另外,与自动布局混合通常不是一个好主意.
选项A和B的一个缺点是状态栏不会混合到您的导航中:
主要缺点是您必须使用约束并计算导航和状态栏高度.呸.
在iOS 7上看起来不错,但在iOS 6上中断.您需要以编程方式更新导航栏的高度,并确保视图的其余部分正确更新.乱.
多个缺点:你将硬编码ios6/7增量.也不适用于autolayout.
这是我选择的解决方法.见下面的答案.
bob*_*ics 27
我发现最简单的解决方法是将要显示的视图控制器包装在导航控制器中,然后显示该导航控制器.
MyViewController *vc = [MyViewController new];
UINavigationController *nav = [[UINavigationController alloc]
initWithRootViewController:vc];
[self presentViewController:nav animated:YES completion:NULL];
Run Code Online (Sandbox Code Playgroud)
您需要将最顶层视图中的垂直约束添加到顶部布局指南,如Apple的以下文章中所述.
https://developer.apple.com/library/ios/qa/qa1797/_index.html
归档时间: |
|
查看次数: |
25084 次 |
最近记录: |