iPhoneアプリのヘッダー（ナビゲーションバー）の色を変更する

# 要旨
この画像のように`NavigationController`を作って、`NavigationBar`の色、タイトルの色、時間表示や電池表示の色を変更する方法を紹介します。
<img width="414" alt="スクリーンショット 2019-02-22 9.29.37.png" src="https://qiita-image-store.s3.amazonaws.com/0/259118/3e9bb4dd-916f-18e7-ef05-5f2036876f1a.png">

# 手順
XcodeでSingle View Appを作成した状態からスタートします。

Xcodeの`Main.storyboard`を表示した状態で、Editor > Embed in > Navigation Controller と選択します。
<img width="779" alt="スクリーンショット 2019-02-22 9.06.38.png" src="https://qiita-image-store.s3.amazonaws.com/0/259118/c2848d7c-7336-edf0-9b8f-6c48a5465531.png">

そうすると、Navigation Controllerが追加されると思います。
<img width="572" alt="スクリーンショット 2019-02-22 9.07.32.png" src="https://qiita-image-store.s3.amazonaws.com/0/259118/e3f5ee43-136b-97ad-8e74-de05ca9474c6.png">

次にNavigation ItemをView Controllerの画面にドラッグ＆ドロップします。すると、タイトルが表示されるようになります。
<img width="739" alt="スクリーンショット 2019-02-22 9.11.54.png" src="https://qiita-image-store.s3.amazonaws.com/0/259118/1626c51f-cef9-de1e-6c77-c7721c6fa38f.png">

で、このナビゲーションバーの色を変更したいわけなのですが、色の指定はソースコードに記述します。
`ViewController.swift`の`viewDidLoad()`メソッドの中に、以下のように記述します。

``` ViewController.swift
import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        
        self.navigationController!.navigationBar.barStyle = .black
        self.navigationController!.navigationBar.barTintColor = #colorLiteral(red: 0.1725490196, green: 0.1725490196, blue: 0.1725490196, alpha: 1)
        self.navigationController!.navigationBar.tintColor = .white
        self.navigationController!.navigationBar.titleTextAttributes = [
            .foregroundColor: UIColor.white
        ]
    }
}
```

このような見た目になります。
<img width="414" alt="スクリーンショット 2019-02-22 9.29.37.png" src="https://qiita-image-store.s3.amazonaws.com/0/259118/50f429f3-2ffc-c47f-4504-5bce3a280e9f.png">

それぞれのパラメーターは下の画像のようになっています。`tintColor`は[こちらのリンク](https://blog.personal-factory.com/2015/12/06/swift-change-the-navigationbarcolor/)にあるように、ナビゲーションアイテムの色を変えるパラメーターのようです。
色の指定は`.white`、`.blue`のように指定もできるし、`#colorLiteral(red: green: blue: alpha:)`のように指定するとカラーパレットが開けて細かく色指定することもできます。
<img width="414" alt="スクリーンショット 2019-02-22 9.29.37.png" src="https://qiita-image-store.s3.amazonaws.com/0/259118/0adb76c3-9b45-6e45-2e41-641e65ac9a0f.png">

`barStyle`については、`default`（何も指定しない）、`black`、`blackTrunslucent`の３つから選べます。

`default`の場合はこうなります。
<img width="398" alt="スクリーンショット 2019-02-23 13.02.15.png" src="https://qiita-image-store.s3.amazonaws.com/0/259118/bb8b1176-a2e4-fd78-f73a-7b08770d5bf7.png">

`blackTrunslucent`の場合はこうなります。`black`と変わらないですね。。。スクロールしたら背景が透けるのかと思ったのですが、そうでもないみたいです。ごめんなさい。ここはよくわからないです。
<img width="401" alt="スクリーンショット 2019-02-23 13.05.33.png" src="https://qiita-image-store.s3.amazonaws.com/0/259118/19ef5cbc-ff0d-bd6f-4958-e5f58ccd598d.png">

ここまで読んでいただいてありがとうございました。

# 参考
* [Change the Color of the Status Bar iOS Tutorial](https://www.ioscreator.com/tutorials/change-color-status-bar-ios-tutorial)
* [iOSでヘッダーを設定する3つの方法](http://grandbig.github.io/blog/2017/06/17/ios-header/)
* [ナビゲーションバーの色を変更する](https://blog.personal-factory.com/2015/12/06/swift-change-the-navigationbarcolor/)
* [UIColorの定義はすべて#colorLiteral使ってみることにしてみた](https://medium.com/swift-column/color-literal-6223850f7e2c)
* [【iOS】ナビゲーションバーのタイトルのフォントとサイズをコードで変更する【Swift3.0】](https://qiita.com/fromage-blanc/items/29335b3f401136e2993e)