私は通常、ステータスバーを非表示にします
override func prefersStatusBarHidden() -> Bool {
return true
}
しかし、Xcodeは「メソッドはそのスーパークラスから何もオーバーライドしません」というエラーを出しています。
override
を削除すると、Xcodeは別のエラーを返します。「Objective-Cセレクター「prefersStatusBarHidden()」のメソッド「prefersStatusBarHidden()」は、同じObjective-Cセレクターのスーパークラス「UIViewController」の「prefersStatusBarHidden」のゲッターと競合します」
また、ターゲットの一般設定で「ステータスバーを隠す」にチェックマークが付いています。
ただし、ステータスバーは引き続き表示されます。
私は別のスタックオーバーフローの答えでこのメソッドを見つけました
UIApplication.shared.setStatusBarHidden(true, with: .none)
ただし、ステータスバーは非表示になりません。
Xcode 8 Beta 1では、1番目と2番目のメソッドを使用しましたが、これらはステータスバーを非表示にする働きをしました(最初のメソッドはエラーを返しませんでした)。 Xcode 8 Beta 4でステータスバーを非表示にするにはどうすればよいですか?
注:ステータスバーは、すべてiOS 10を実行しているシミュレーターデバイスと物理デバイスに表示されます。
Swift 3のプロパティ自体をオーバーライドする必要があります(これはXcode 8 Beta 4の新機能です)。
override var prefersStatusBarHidden: Bool {
return true
}
別の例では、 here および here を取得することもできます
この変更が何であるか、なぜそれが必要なのかについては、 Mattのこれに関するすばらしい回答 を参照してください。