使用if语句隐藏状态栏?

时间:2013-01-13 19:25:54

标签: iphone ios cocoa-touch

我的应用中有QR码阅读器。读者扫描代码后,会将应用程序带到调查页面。我试图让调查页面隐藏状态栏。这是我的代码:

- (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];

    }

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

另外:有没有办法可以使用相同的if语句隐藏监视器上的tabbarcontroller?

1 个答案:

答案 0 :(得分:2)

在ZxingController的viewDidAppear:(ZxingWidgetController.m)

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

它缓存了之前的状态栏状态,当你退出ZxingController时,在viewDidDisappear中:

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

由于zxingController中的 viewDidDisappear将在zxingController之后输入:didScanResult:
所以zxingController中的setStatusBarHidden:didScanResult:没用。