2015-11-04 92 views
0

目標截圖要的iOS 9的UIImagePickerController的狀態欄。白色

首先,我已閱讀這些鏈接

所有的鏈接使用的iOS 9

已被棄用那麼,如何讓lightContent的狀態欄。在IOS 9 UIApplication

- setStatusBarStyle:animated: 
- setStatusBarHidden:withAnimation: 

但是,這些API的API?

回答

7

我想通了,只是發佈我的答案。 接受任何更好的答案

  1. 設置View controller-based status bar appearance爲YES,或者只是刪除的info.plist
  2. 此鍵使UIImagePickerController

    @interface BaseImagePickerController : UIImagePickerController 
    
    @end 
    
    
    @implementation BaseImagePickerController 
    -(UIStatusBarStyle)preferredStatusBarStyle{ 
        return UIStatusBarStyleLightContent; 
    } 
    @end 
    
  3. 使用一個子類此子

    self.imagePikerViewController = [[BaseImagePickerController alloc] init]; 
    
+0

不敢相信這是蘋果將打算爲你做的方式,但它是我發現的唯一方式工作。 – Lewis42

1

這裏是如何做到這一點在斯威夫特:

class BaseImagePickerController { 
    func preferredStatusBarStyle() -> UIStatusBarStyle { 
     return UIStatusBarStyleLightContent 
    } 
} 

將其初始化:

self.imagePikerViewController = BaseImagePickerController() 

似乎statusBarStyle已被廢棄,但UIStatusBarStyle沒有。

enter image description here

你也可以改變顏色只是一個視圖控制器是這樣的:

override func preferredStatusBarStyle() -> UIStatusBarStyle { 
    return .LightContent 
} 

或者在AppDelegate中的didFinishLaunchingWithOptions文件,你可以在這整個應用程序進行更改:

UIApplication.sharedApplication().statusBarStyle = .LightContent 
1

而不是UIImagePickerController的子類,你可以在UINavigationController上使用UIImagePickerContro的擴展ller是override的一個子類,並且覆蓋preferredStatusBarStyle()。這消除了在這種情況下的所有問題。

extension UINavigationController{ 

override public func preferredStatusBarStyle() -> UIStatusBarStyle { 

    return .LightContent 
} 

}