我有一个ViewController在里面UINavigationcontroller,但导航栏是隐藏的.当我在iOS 7上运行应用程序时,状态栏显示在我的视图之上.有办法避免这种情况吗?
我不想编写任何特定于操作系统的代码.

我试着设置View controller-based status bar appearance到NO,但它并没有解决这个问题.
我正在将我的应用程序迁移到iOS 7.为了处理状态栏问题,我添加了此代码
if([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0f)
{
CGRect frame = self.navigationController.view.frame;
if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
{
frame.origin.y = 20;
}
else
{
frame.origin.x = 20;
}
[self.navigationController.view setFrame:frame];
}
Run Code Online (Sandbox Code Playgroud)
这在正常情况下工作正常.如果我正在更改方向(应用程序仅支持横向方向)或呈现任何视图控制器并关闭模型视图控制器,我的视图控制器对齐方式已更改.状态栏再次与我的视图控制器重叠.这段代码根本不起作用.请指导我修复此状态栏问题.
案例2:这就是我呈现视图控制器的方式
ZBarReaderViewController *reader = [ZBarReaderViewController new];
reader.readerDelegate = self;
if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
reader.supportedOrientationsMask = ZBarOrientationMaskLandscape;
else
reader.supportedOrientationsMask = ZBarOrientationMaskPortrait;
[self presentModalViewController:reader animated:YES];
Run Code Online (Sandbox Code Playgroud)
参考:

提前致谢.