0

我的应用程序中有一个二维码阅读器。阅读器扫描代码后,会将应用程序带到调查页面。我正在尝试让调查页面隐藏状态栏。这是我的代码:

- (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?

4

1 回答 1

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

于 2013-01-14T02:58:37.877 回答