【Xcode5.1.1 + iOS 7.1 + MacOX10.9.4】
Storyboardの画面リンク(Segue)を使わずに、コードで画面遷移を書いていてハマったのでメモ。
・ナビゲーション(Navigation/UITableViewControllerなどで使う、NavigationBarが出てくる画面遷移)
//画面を遷移(※confVCは表示するViewCOntroller) [self.navigationController pushViewController:confVC animated:YES]; //元画面に戻る [self.navigationController popViewControllerAnimated:YES];
・モーダル(Modal/現在のViewに重なるように表示する画面遷移)
//画面を遷移(※confVCは表示するViewCOntroller) [self presentViewController:configurationVC animated:YES completion:nil]; //元画面に戻る [self dismissViewControllerAnimated:YES completion:nil];
この2つをごっちゃにしていてハマりました。どのViewControllerでも、ナビゲーション(Navigation)の方法ならきちんとNavigationBarが表示されて戻るボタンが自動でつきます。
最初はUITableViewControllerだけNavigationBarが出なくて調べていたら、こんな基本的なことだたっという・・。
【参考】
iOS アプリの画面開発の基礎を理解する – A Day In The Life
iPhoneプログラミング入門「モーダルビュー1」
Objective-C – モーダルビューを出したり消したり – Qiita
yuki0n0 高校生アプリ開発者のブログ: storyboardで作った画面をコードで画面遷移
だんだん作り込んでくると、基本的な画面のレイアウト(固定部分)はStoryboardを使って、画面遷移やボタン配置など可変になる部分はコードで制御する方がいいかなと思っていて、Storyboardの画面リンク(Segue)を全部削除してコードで書き換えてます。