我想显示模态视图,并希望它覆盖iPhone的状态栏。
我尝试将模态视图控制器的wantsFullScreenLayout属性设置为YES;我还将其父级属性设置为YES。这不起作用,大概是因为模态视图显示在主窗口的内容下面,其中包括状态栏。
我的第二种方法放弃了整个“wantFullScreenLayout”技术,有利于在显示模态视图之前隐藏状态栏,然后在取消模态视图后将其重新打开。这工作直到最后......模态视图的父视图布局不正确(其导航栏部分隐藏在状态栏后面。)调用 - [view setNeedsLayout]什么都不做。
我该如何解决这个问题?
感谢。
答案 0 :(得分:12)
迟到了,但我想我可以为别人省些麻烦。
我有一个VC推送到NavController(我们称之为VC的PARENT)。现在我想显示一个隐藏导航栏和状态栏的模态屏幕(CHILD)。经过多次实验,我知道这有效......
1)因为我通过调用PARENT中的presentModalViewController:(UIViewController *)modalViewController animated:(BOOL)animated
来呈现CHILD VC,导航栏不再涉及(不需要隐藏它)。
2)CHILD VC笔尖中的视图大小为320x480。
3)CHILD VC在self.wantsFullScreenLayout = YES;
viewDidLoad
4)在呈现CHILD之前,使用[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:YES];
5)使用PARENT中的委托协议方法解除CHILD VC,并在[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:YES];
之前调用dismissModalViewControllerAnimated:YES]
以确保导航栏位于正确的位置
希望这有帮助。
答案 1 :(得分:2)
您需要- (void)setStatusBarHidden:(BOOL)hidden animated:(BOOL)animated
课程上的UIApplication
。
这样的事情:
[[UIApplication sharedApplication] setStatusBarHidden:YES animated:YES];
那应该用漂亮的淡入淡出动画隐藏状态栏。