2012-11-19 58 views
2

我面临着以下的问题,我想提出一个modalViewController并使其覆盖整个屏幕,例如:IOS wantsFullScreenLayout状态栏可见

[controller setWantsFullScreenLayout:yes]; 
[myNavController presentModalViewController:controller animated:yes]; 

的结果是,控制器不覆盖整个屏幕和状态栏在顶部可见。 我不明白为什么会发生这种情况。

回答

6

wantsFullScreenLayout属性不隐藏状态栏,它使得视图控制器在它后面展开(也可以放在导航栏之类的东西后面)。这方面的一个例子是内置的照片应用程序,其中一个画面显得落后状态栏和导航栏:

enter image description here

要进行模态视图控制器全屏你需要设置你的观点的modalPresentationStyle财产控制器到UIModalPresentationFullScreen。启用此功能后,您可能不需要或不想设置wantsFullScreenLayout

要隐藏你需要使用的UIApplicationsetStatusBarHidden:withAnimation:法的状态栏。

+2

调用wantsFullScreenLayout之前呈现模式的看法是强制性的。否则,视图不会被调整为全屏。 –

+0

Borut是正确的。尝试并在iOS 5和iPhone 6上测试。 –

1

尝试添加此:

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:NO]; 

另外,如果你希望它在任何时候都隐藏,并且应用程序启动时,在你的plist文件,添加到Status bar initially hiddenYES