显示模态视图时,iPhone状态栏会消失吗?

Gre*_*tic 6 iphone modal-dialog fullscreen statusbar

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

我尝试将模态视图控制器的wantsFullScreenLayout属性设置为YES; 我还将其父级属性设置为YES.这不起作用,大概是因为模态视图显示在主窗口的内容下面,其中包括状态栏.

我的第二种方法放弃了整个"wantsFullScreenLayout"技术,有利于在显示模态视图之前隐藏状态栏,然后在取消模态视图后将其重新打开.这工作直到最后......模态视图的父视图布局不正确(其导航栏部分隐藏在状态栏后面.)调用 - [view setNeedsLayout]什么都不做.

我该如何处理这个问题?

谢谢.

mpu*_*see 12

加入了很晚的讨论,但我想我可以为别人省些麻烦.

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

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

2)CHILD VC笔尖中的视图大小为320x480.

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

4)在呈现CHILD之前,隐藏状态栏 [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:YES];

5)使用父委托协议方法驳回孩子VC,并调用[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:YES];之前dismissModalViewControllerAnimated:YES],确保导航栏是在正确的位置绘制

希望这可以帮助.

  • 关于步骤4,方法签名是` - (void)setStatusBarHidden:(BOOL)hidden withAnimation:(UIStatusBarAnimation)animation`.你发送了第二个参数BOOL而不是UIStatusBarAnimation. (2认同)

Jas*_*ien 2

你会想要在课堂- (void)setStatusBarHidden:(BOOL)hidden animated:(BOOL)animatedUIApplication

像这样的东西:

[[UIApplication sharedApplication] setStatusBarHidden:YES animated:YES];
Run Code Online (Sandbox Code Playgroud)

这应该会隐藏状态栏并带有漂亮的淡入淡出动画。