後から navigation controller を追加するとハマるね。

Xcode でアプリ作ってて、sigleton テンプレートで進めていたら、後から navigation bar を追加したくなって、簡単・簡単とタカをくくっていたらハマるねこれ。

まず、storyboard に navigation bar を追加しようと object の一覧を見たら navigation bar というのがあるので、あぁ、これこれと、view conroller に追加したら、なんか違う。以前これはまったことある。object の一覧を見ると、navigation controller というのがあり、それを追加した方が話が早い。

navigation controller を storyboard に drag すると、navigation controller と、table view controller の 2 画面ができてしまう。なんじゃこりゃ? table view controller は明らかにいらないので削除して、次に、残った navigation controller はどうするのか。

正解は、これを entry point にしてもともとあった view controller に接続してやれば、もともとあった view controller に navigation bar が表示されるという仕様。

navigation controller を entry point にしてやらないと、segue 接続で画面遷移しようとしただけで push はできませんエラーになったりして、すごい焦る。