2017-01-04 7 views
3

新年あけましておめでとうございます!Swift 3.0 - UIImagePickerControllerを呼び出した後、ステータスバーを非表示にする方法は?

iOS 10.2でUIImagePickerControllerを呼び出した後、ステータスバーを非表示にしたいとします。 いくつかの回答で既にいくつか質問がありますが、回答がSwift 3.0ではうまくいかないことは心配です。

推奨的回答は以下のとおりです。UIImagePickerControllerはUINavigationControllerのサブクラスであるため、

  • は、preferStatusBarHiddenを上書きするUINavigationControllerを拡張します。

だから私は試してみました:

extension UINavigationController{ 
    open override var prefersStatusBarHidden: Bool{ 
     return true 
    } 
} 
  • はprefersStatusBarHiddenを上書きするUIImagePickerControllerを拡張します。

だから私は試してみました:

extension UIImagePickerController{ 
    open override var prefersStatusBarHidden: Bool{ 
     return true 
    } 
} 
  • をUIImagePicker

のサブクラスを作成して使用だから私が試していない:、残念ながら、のどれを

class MyImagePickerController: UIImagePickerController{ 
    override var prefersStatusBarHidden: Bool{ 
     return true 
    } 
} 

をしかし、上記のソリューションは私のために働いているようです。 Swift 3.0に習熟しているiOS開発者に、UIImagePickerController呼び出し後にステータスバーを非表示にする方法を教えてください。

ありがとうございます!

答えて

8

ステータスバーには、恒久的UIImagePickerControllerに次の拡張子で非表示にすることができます:iOSの10

+2

に、スウィフト3のために働いている

extension UIImagePickerController { open override var childViewControllerForStatusBarHidden: UIViewController? { return nil } open override var prefersStatusBarHidden: Bool { return true } } 

これをそれは魔法のように動作します!おかげさまで、サム。 –

0

UINavigationControllerDelegateというデリゲートメソッドメソッドを次のように追加します。

class PersonalInfoVC: UIViewController, UIImagePickerControllerDelegate , UINavigationControllerDelegate{ 

デリゲートを追加してステータスバーを非表示にします。

func navigationController(_ navigationController: UINavigationController, willShow viewController: UIViewController, animated: Bool){ 
    UIApplication.shared.isStatusBarHidden = true 
} 
関連する問題