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