在開發(fā)的過程中,如果我們需要給用戶提供一個(gè)瀏覽器功能的支持铭段、又或者需要讓用戶來從系統(tǒng)相冊(cè)挑選圖片,那么利用 UIKit 給我們提供的現(xiàn)成的 SFSafariViewController 和 UIImagePickerController 將是非常方便的事情恢共,但是
let pc = UIImagePickerController()
let sf = SFSafariViewController(URL: NSURL(string:""))
像這樣用一行代碼來創(chuàng)建 ViewController榨咐,使我們喪失了進(jìn)入這個(gè) ViewController 的內(nèi)部去調(diào)節(jié)一些東西的機(jī)會(huì)百侧。
比如說我們整個(gè)App都是采用的白色狀態(tài)欄砰识,而 SFSafariViewController 和 UIImagePickerController 都是默認(rèn)背景為白色的(即需要一個(gè)黑色狀態(tài)欄,否則用戶看不清內(nèi)容)佣渴,這時(shí)候我們需要一個(gè)默認(rèn)自身的狀態(tài)欄永遠(yuǎn)為黑色的 SFSafariViewController 或 UIImagePickerController
下面以 UIImagePickerController 為例給出一種解決方案辫狼。
class CustomImagePC: UIImagePickerController {
override func viewDidLoad() {
super.viewDidLoad()
UIApplication.sharedApplication().setStatusBarStyle(UIStatusBarStyle.Default, animated: true)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
override func viewWillDisappear(animated: Bool) {
UIApplication.sharedApplication().setStatusBarStyle(UIStatusBarStyle.LightContent, animated: true)
}
}
如上所示,創(chuàng)建了一個(gè)自定義的 UIImagePickerController 辛润,代碼里面設(shè)定了:這個(gè)頁面被加載之后膨处,狀態(tài)欄設(shè)置為黑色,頁面即將消失時(shí)砂竖,狀態(tài)欄再轉(zhuǎn)為白色真椿。調(diào)用的時(shí)候,直接
let pc = CustomImagePC()
SFSafariViewController 同理乎澄,當(dāng)然你也可以在這些代碼里插入其他內(nèi)容突硝,如果你想更高程序地定制一個(gè) UIImagePickerController 的話。