6

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

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

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

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

谢谢。

4

2 回答 2

12

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

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

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

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

3) CHILD VCself.wantsFullScreenLayout = YES;进入viewDidLoad

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

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

希望这可以帮助。

于 2011-08-27T23:44:41.167 回答
2

你会想要上课- (void)setStatusBarHidden:(BOOL)hidden animated:(BOOL)animated的。UIApplication

像这样的东西:

[[UIApplication sharedApplication] setStatusBarHidden:YES animated:YES];

那应该用漂亮的淡入淡出动画隐藏状态栏。

于 2010-02-03T00:24:44.543 回答