1. ホーム
  2. スイフト

[解決済み】iOS8でSwiftを使用して特定のViewControllerのステータスバーの色を変更する。

2022-04-09 18:15:48

質問

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

上記のコードを任意の ViewController で使用すると、特定の ViewController に対して StatusBar の色を White に設定することができます。 iOS8ではうまくいきません。 . 何か提案はありますか? UIApplication.sharedApplicationメソッドを使用すると、アプリ全体のInfo.plistで必要な変更を行った後に色が変わります。

// Change the colour of status bar from black to white
UIApplication.sharedApplication().statusBarStyle = .LightContent

どうすれば、ステータスバーの色を変更するだけで、必要なものと 特定のViewController ?

解決方法は?

すべての提案を読み、いくつかのことを試した後、私は以下の手順で特定のビューコントローラーでこれを動作させることができました。

最初のステップ

info.plistを開き、"という名前の新しいキーを挿入してください。 ビューコントローラによるステータスバー表示 NO

セカンドステップ(単なる説明であり、実装する必要はありません)。

通常、以下のコードを application(_:didFinishLaunchingWithOptions:) に記述します。 メソッドに記述する。

スウィフト2

UIApplication.sharedApplication().statusBarStyle = .LightContent

Swift 3

UIApplication.shared.statusBarStyle = .lightContent

が、その statusBarStyle のすべてのViewControllerの

では、これを特定のViewControllerで動作させるにはどうすればいいのか - 最終段階です。

を変更したいビューコントローラーファイルを開いてください。 statusBarStyle に以下のコードを記述してください。 viewWillAppear() ,

スウィフト2

UIApplication.sharedApplication().statusBarStyle = .LightContent

Swift 3

UIApplication.shared.statusBarStyle = .lightContent

また viewWillDisappear() メソッドを作成し、以下のコードを記述してください。

スウィフト2

override func viewWillDisappear(animated: Bool) {
    super.viewWillDisappear(animated)
    UIApplication.sharedApplication().statusBarStyle = UIStatusBarStyle.Default

}

Swift 3

override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(animated)
    UIApplication.shared.statusBarStyle = UIStatusBarStyle.default
}

このステップでは、まず statusBarStyle を特定のビューコントローラのために使用し、その後、それを default 特定のビューコントローラが消えたとき を実装しないことで viewWillDisappear() を変更すると statusBarStyle の新しい定義された値に永続的に変更されます。 UIStatusBarStyle.LightContent