我的应用程序中有一个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?

最佳答案

在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:didScanResult:中的setStatusBarHidden没有用。

08-19 12:25