2013-01-13 78 views
0

我在我的应用程序中有一个QR码阅读器。一旦阅读器扫描一个代码,它就会将该应用程序带到一个调查页面。我试图让调查页面隐藏状态栏。这里是我的代码:用if语句隐藏状态栏?

- (void)zxingController:(ZXingWidgetController*)controller didScanResult:(NSString *)result { 

    // self.resultsToDisplay = result; 
    if (self.isViewLoaded) { 

     [[NSBundle mainBundle] loadNibNamed:@"yellaViewController" owner:self options:nil]; 
     initWithNibName:@"yellaViewController" bundle:[NSBundle mainBundle]]; 

     [topImage setImage:[UIImage imageNamed:@"yellalogoREAL.png"]]; 


     [[UIApplication sharedApplication] setStatusBarHidden:YES]; 

    } 

这不适用于我,状态栏保持可见状态。我究竟做错了什么?

ALSO:有没有一种方法可以使用相同的if语句将监视器上的tabbarcontroller隐藏起来?

+0

你确定它输入了if语句吗?另外,请检查代码中其他位置是否隐藏状态栏。当您将该行代码移动到其他地方时会发生什么?那它有用吗? –

+0

当我将这行代码移动到委托而不是.m时,它可以工作,但对于每个页面。 – Adam

回答

2

在ZxingController的viewDidAppear:(ZxingWidgetController.m)

self.isStatusBarHidden = [[UIApplication sharedApplication] isStatusBarHidden]; 
if (!isStatusBarHidden) 
    [[UIApplication sharedApplication] setStatusBarHidden:YES]; 

它缓存先前的状态栏的状态,而当你退出ZxingController,在viewDidDisappear:

if (!isStatusBarHidden) 
    [[UIApplication sharedApplication] setStatusBarHidden:NO]; 

由于viewDidDisappear在ZxingController将在zxingController后输入:didScanResult:
所以你的setStatusBarHidden在zxingController:didScanResult:是n o使用。