【Xcode 5】複数のストーリーボード間で画面遷移させる方法
公開日:
:
iOSアプリ開発
今日は、ストーリーボードから他のストーリーボードへ画面遷移させる方法を紹介します。
プロジェクトにストーリーボードを追加する
左サイドバーでメニューを表示して「New File…」を選択します。
左のリストから「User Interface」を選択し、右のアイコン一覧から「Storyboard」を選択します。ここでは「Sub.storyboard」という名前で保存しました。
ストーリーボードに画面とボタンを配置する
ここでは、1つ目のストーリーボードにViewController(赤)を1つ置き、そこにボタンを1つ配置。2つ目のストーリーボードにもViewController(緑)を1つ置いて、ボタンを1つ配置します。
赤い画面のボタンがタップされた時のアクションを作成
1つ目のストーリーボードに置いているボタンのアクションを作成し、以下のようなコードを記述します。これで2つ目のストーリーボードのイニシャルビューコントローラー(矢印が付いているビューコントローラー)に遷移させることができます。
- (IBAction)pressButton:(id)sender { UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Sub" bundle:nil]; id greenViewController = [storyboard instantiateInitialViewController]; [self presentViewController:greenViewController animated:YES completion:nil]; }
ちなみにストーリーボード上で「Storyboard ID」を設定しておけば、イニシャルビューコントローラー以外にも遷移させることができます。
- (IBAction)pressButton:(id)sender { UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Sub" bundle:nil]; id greenViewController = [storyboard instantiateViewControllerWithIdentifier:@"GreenViewController"]; [self presentViewController:greenViewController animated:YES completion:nil]; }
緑の画面から赤い画面へUnwind Segueで戻る
2つ目のストーリーボードから1つ目のストーリーボードへは、通常と同じでUnwind Segueを使って遷移させることができます。
@akio0911はこう思った。
ストーリーボードに画面が増えてきた場合は、複数のストーリーボードに分割するのもいいかもしれませんね。