Adam
Adam

Reputation: 1837

Hide Status bar with if statement?

I have a QR code reader in my app. Once the reader scans a code, it takes the app to a survey page. I'm trying to get the survey page to hide the statusbar. Here is my code:

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

    }

This isn't working for me, and the statusbar stays visible. What am I doing wrong?

ALSO: Is there a way I can hide the tabbarcontroller on the surveypage using the same if statement?

Upvotes: 0

Views: 175

Answers (1)

user9527
user9527

Reputation: 315

In ZxingController's viewDidAppear: (ZxingWidgetController.m)

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

it cached the previous statusbar state, and when you exit the ZxingController, in viewDidDisappear:

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

Since the viewDidDisappear in ZxingController will enter after zxingController:didScanResult:
So your setStatusBarHidden in zxingController:didScanResult: is no use.

Upvotes: 2

Related Questions