iphone - 使iPhone状态栏在显示模态视图时消失?

标签 iphone modal-dialog fullscreen statusbar

我想显示一个模态视图,并希望它覆盖 iPhone 的状态栏。

我尝试将模态视图 Controller 的wantFullScreenLayout属性设置为YES;我还将其父级的属性也设置为 YES。这不起作用,可能是因为模态视图显示在主窗口内容(包括状态栏)下方。

我的第二种方法放弃了整个“wantsFullScreenLayout”技术,转而在显示模态视图之前隐藏状态栏,然后在模态视图关闭后将其重新打开。这一直有效到最后......模态视图的父 View 布局不正确(其导航栏部分隐藏在状态栏后面。)调用 -[view setNeedsLayout] 不会执行任何操作。

我应该如何解决这个问题?

谢谢。

最佳答案

加入讨论晚了,但我想我可以为其他人省去一些麻烦。

我有一个 VC 多次推送到 NavController 中(我们称该 VC 为 PARENT)。现在我想显示一个模态屏幕(CHILD),其中导航栏和状态栏隐藏。经过多次实验,我知道这是有效的......

1) 因为我通过在 PARENT 中调用 presentModalViewController:(UIViewController *)modalViewControllerAnimated:(BOOL)animated 来呈现 CHILD VC,所以不再涉及导航栏(无需隐藏它) )。

2) CHILD VC Nib 中的 View 大小为 320x480。

3) CHILD VC 在 viewDidLoad 中设置 self.wantsFullScreenLayout = YES;

4) 在显示 CHILD 之前,使用 [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:YES]; 隐藏状态栏

5) 在 PARENT 中使用委托(delegate)协议(protocol)方法关闭 CHILD VC,并在 dismissModalViewControllerAnimated:YES] 之前调用 [[UIApplication shareApplication] setStatusBarHidden:NO withAnimation:YES]; code> 确保导航栏绘制在正确的位置

希望这有帮助。

关于iphone - 使iPhone状态栏在显示模态视图时消失?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2188401/

相关文章:

iphone - 如何接收异步请求对单例的响应?

ios - xCode 升级缺少模拟器。如何使用本地存储的模拟器?

javascript - Three.js 全屏问题

android - 我无法在全屏模式下放置网页 View

iphone - 每周类(class)时间表IOS

iphone - 从我的应用程序中打开 iPod 应用程序?

jquery - 如何在 Jquery UI 对话框中实现 "confirmation"对话框?

javascript - 如何在页面刷新时阻止用户单击任何其他按钮(模态窗口解决方案的一部分)

ajax - 急于实现grails服务器端触发的对话框,或如何在AJAX调用后突破更新区域

fullscreen - 如何在另一个远程桌面内的远程桌面中切换全屏模式?