我想显示一个模态视图,并希望它覆盖 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/