BAD_ACCESS

おもにiOS、ときどき変な電子工作、ガジェット話。

StoryBoardを使うけどSeguesは使わない場合の画面遷移の方法

需要があるかどうか…
StoryBoardを使った画面遷移の設計・開発は直感的にできて非常に有用。
ただし、ちょっと標準のやり方と離れていくと、途端に使い方を迷ってしまうことも否めない。
今回はStoryBoardを使って開発を進めつつもSeguesを使わない場合の画面遷移についてのメモ。

Seguesを使わない場合

例えば、あるボタンをタップしてModalViewを表示させる時に、タップしたあとに何らかの処理をはさんで画面遷移させたい場合などがある。
Xibファイルで作る場合は特に気にせずinitWithNibFile:を呼ばばいいと思うけどStoryBoardだとそうはいかない様子。

initWithNibFile:の代わりに呼ぶメソッド

StoryBoardを使って開発する限りは画面遷移の際に下記のメソッドを呼ぶ必要があるみたい。(例はモーダルビュー TempViewControllerを表示する場合)

TempViewController *tempVC;
tempVC = [self.storyboard instantiateViewControllerWithIdentifier:@"TempViewController"];
//モーダルの表示
[self presentModalViewController:tempVC animated:YES];

これだけでは表示されないので、StoryBoard側で以下のように値をいれてやる。

そうすると正しくモーダルビューが表示されるようになった!
まだこのへんは割と情報が少ない感じですね…

※5月5日追記
http://d.hatena.ne.jp/SOMTD/20120311/1331473638
StoryBoardの日本語ドキュメントが公開されたようです。