这是一个相当独特的问题。我搜索了几个小时,但找不到答案。我希望我的应用中的所有UIViewControllers
都可以看到UIStatusBar
。但是在某个UIViewController
上,当您点按UIButton
时,以下方法会调用相机modalView控制器。我想在调用以下方法时隐藏状态栏:
-(BOOL)startCameraControllerFromViewController:(UIViewController*)controller
usingDelegate:(id )delegate
我尝试使用UIViewController
状态栏更改plist文件状态栏= YES(我只想在拉出模态视图时隐藏UIStatusBar
)
我也在上述方法中尝试了以下内容:
[[UIApplication sharedApplication] setStatusBarHidden:YES
withAnimation:UIStatusBarAnimationNone];
if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)]) {
[[UIApplication sharedApplication] setStatusBarHidden:YES
withAnimation:UIStatusBarAnimationNone];
似乎没什么用。有人可以帮忙吗?
答案 0 :(得分:16)
在View Controller中实现此方法,
-(BOOL)prefersStatusBarHidden
{
return YES;
}
并在您想要的地方调用此方法,
[self prefersStatusBarHidden];
答案 1 :(得分:16)
通过继承UIImagePickerController并将其添加到.m文件来解决它:
- (BOOL)prefersStatusBarHidden {
return YES;
}
然后将其导入到使用选择器的类中,而不是初始化imagepicker我初始化子类。
注意:确保plist文件中基于View控制器的状态栏外观设置为YES。
答案 2 :(得分:3)
您还可以做的就是像以前一样设置隐藏在plist中的状态栏。然后在app delegate中调用setStatusBarHidden:NO,在应用程序首次加载时将其设置为默认值。然后再次调用此方法,您需要使用值YES隐藏状态栏。
答案 3 :(得分:0)
已成功使用 - (BOOL)prefersStatusBarHidden {...}用于多个视图控制器,但它没有在没有导航控制器的情况下显示的特定模态视图。根据Karthika,我在Check the iOS status bar hidden with a modal view controller取得了成功。
答案 4 :(得分:0)
-(void)viewWillApper:(BOOL)animated{
[[UIApplication sharedApplication] setStatusBarHidden:YES];
}
-(void)viewWillDisappear:(BOOL)animated{
[[UIApplication sharedApplication] setStatusBarHidden:NO];
}
此代码将设置要隐藏状态栏的viewcontroller。