2013-09-22 31 views
2

在我的應用程序中,我沒有顯示狀態欄。 在IOS 7我不得不添加「查看基於控制器的狀態欄外觀」的信息plist中,這是很好的,但是當我使用下面的代碼:在IOS 7中呈現相冊時啓用狀態欄`

imagePicker.allowsEditing = YES; 
imagePicker.sourceType = (sender == self.chooseImageBtn && [UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) ? UIImagePickerControllerSourceTypeCamera : 
UIImagePickerControllerSourceTypeSavedPhotosAlbum; 
[self presentViewController:imagePicker animated:YES completion:nil]; 

再次顯示狀態欄,即使我添加以下代碼:

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide]; 

回答

0

我這個也打了很長一段時間把這個視圖控制器的viewWillAppear中。這是我終於擺脫它的原因。

- (void) navigationController:(UINavigationController *) navigationController willShowViewController:(UIViewController *) viewController animated:(BOOL)animated 
{ 
    if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)]) { 
     [self setNeedsStatusBarAppearanceUpdate]; 
     viewController.contentSizeForViewInPopover = navigationController.topViewController.view.frame.size; 
    } 
} 

而且,在你Info.plist中,添加:

View controller-based status bar appearance: NO 

希望有所幫助。

+0

我不得不把下面的代碼放在if語句中:[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];而不是你的,但它像一個魅力。感謝的人 –

+0

我剛剛發現了一個隱藏的bug,這會觸發...如果您在使用圖像選擇器時隱藏狀態欄,imagepicker將不會滾動到圖像底部(最新),而是會將用戶留在頂部最老的)。哎呀。尼斯,蘋果。這個狀態欄的東西真的需要這麼複雜嗎? – pizzafilms

1

當您打開imagepicker因爲顯示forcfully有狀態欄這個問題就來了。

我面臨同樣的問題。

這是我的解決方案。從您正在打開的圖像pickerview

-(void) viewWillAppear:(BOOL)animated{ 
    [super viewWillAppear:YES]; 

    [[UIApplication sharedApplication] setStatusBarHidden:YES]; 

} 
+0

此代碼不適用於IOS7。我在問題 –

+1

中提到它在我的xcode上工作,並且它的7.0 它出現在我的代碼中的同一個senario中。我想知道爲什麼它不在你的工作。 –

+0

它在iOS7上正常工作。 –