ちょっとしたところで数時間ハマったのでメモ。
環境
Xcode:6.2
問題
NavigationController配下のViewを追加しようとしたら、
-
追加した画面へsegueを接続して実行してみると落ちる
(identifierに指定した文字列は合っていても「無い」的な例外発生) -
追加した画面のNavigationItem(画面タイトルというかナビゲーションバーというか)が表示されない
解決
segueは「Show」で。
segueの種類として「Show Detail」を選択していたのがそもそもの原因だった。
「Show」を選択してやったら問題なく遷移できるようになり、NavigationItemも表示されるようになった。
実際、Storyboard上でSegueの指定を「Show」→「Show Detail」に変えるとその時点でNavigationItemが画面上から消える。
参考:Segueの種類の解説記事
http://dev.classmethod.jp/references/xcode-6-segue/
→ Show Detail: ViewControllerを”置き換える”動きとなる。主にiPadで使う。 とのこと。
事前にViewController/segue追加の仕方を解説しているサイトを幾つか参照したうえでやってたのだが、segueのidentifierを"showDetail"とする例が多かった気がする。
Segue種類の選択肢と名前が一緒でややこしいので区別し易い名称に自分で変えたほうがよいと思った。
その点気付かずにハマったので、これに限らず細部までよく確認するようにする(という自戒の意味で)