2013-10-11 72 views
4

我面對的狀態欄問題的iOS 7 enter image description here的UIImagePickerController presentViewController - 狀態欄問題ios7

下面是代碼爲呈現這個圖片選擇器

if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) { 

     picker.sourceType =UIImagePickerControllerSourceTypePhotoLibrary; 

     if ([self respondsToSelector:@selector(presentViewController:animated:completion:)]){ 
      [self presentViewController:picker animated:YES completion:^{ 

       if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) 
        [[UIApplication sharedApplication] setStatusBarHidden:YES 
                  withAnimation:UIStatusBarAnimationNone]; 
      }]; 
     } 
     else { 
      [self presentModalViewController:picker animated:YES]; 
     } 
    } 

,當我試圖挑選圖像屏幕就像下面

enter image description here

任何一個可以幫助我解決這個問題?

+0

你使用assetlibrary嗎? – Rushabh

+0

不,我不使用那個 – Dev

+0

@Dev,只是爲你添加完整的解決方案。請檢查我的答案的編輯部分。 –

回答

6

試試這個

- (void)imagePickerController:(UIImagePickerController *)aPicker didFinishPickingMediaWithInfo:(NSDictionary *)info { 

// for iOS7 
if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)]) { 

    [[UIApplication sharedApplication] setStatusBarHidden:YES]; 
} 

編輯:

這裏是一個更容易的解決方案。

在plist中添加布爾型的基於視圖控制器的狀態欄外觀,並將其值設置爲NO。然後在您的應用程序代理application didFinishLaunchingWithOptions聲明如下:

[application setStatusBarHidden:NO]; 
[application setStatusBarStyle:UIStatusBarStyleDefault]; 

當您啓動攝像頭,應該照顧的狀態欄。然後相機膠捲部分只添加視圖控制器下面的方法,你已經把代碼爲UIImagePickerController

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated 
{ 
[[UIApplication sharedApplication] setStatusBarHidden:YES]; 
} 

當您選擇相機膠捲應該照顧模式視圖狀態欄。

希望這可以幫助人。

+0

setStatusBarHidden:如果您單擊圖像選擇器外部,則不會隱藏狀態欄以將其刪除。 – Ans

+0

在你的信息plist中添加這個布爾型的基於視圖控制器的狀態欄外觀,並將其設置爲no。然後插入[application setStatusBarHidden:NO]; [application setStatusBarStyle:UIStatusBarStyleDefault];在你的應用程序中,委託應用程序確實完成了執行方法。這會在相機被觸發時隱藏狀態欄。 –

+0

我的情況就是這樣,在我的iPad應用程序中。 1.我有一個彈出式控制器的UIImagePicker。 2.我已經將基於視圖控制器的狀態欄外觀的布爾值設置爲NO,在plist中。 3.也在didFinishLoading'[application setStatusBarHidden:NO]' 4.一切都很好,直到現在,任何視圖控制器中都沒有狀態欄。 5.但是當我在popover控制器內顯示圖像選擇器時,狀態欄出現。 5.1。如果我選擇任何圖像,狀態欄......它消失。這是可以忍受的。 5.2但是如果我點擊popover外,popover消失,但不是狀態欄。 所以點問題是在點5.2任何意見。 – Ans