2013-01-13 75 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使用。