【Xcode】master detail applicationの画面遷移をSingle View Applicationテンプレートから作る

「master detail application テンプレート」を使うと作れる画面遷移を「Single View Applicationテンプレート」から作るときの覚書。

参考ページ:こちら

新しいプロジェクトをつくるとき「Single View Applicationテンプレート」を選択すると、最初に storyboard に View Controller シーンがひとつできている。

このシーンを「画面1」と名づける。Object library からもうひとつ View Controller をドラッグして作り「画面2」と名づける。「画面1」に設置したボタンをタップすると「画面2」に遷移する仕組みをつくる。

手順。

1.Navigation Controller シーンを設置する

Object library から Navigation Controller をドラッグして設置する。Navigation Controller を選択して「Is initial View Controller」にチェックを入れる。すると、いままで View Controller の左横にあった矢印(→)が、Navigation Controller の横に移る。

新しく設置した Navigation Controller には Table View が勝手にくっついてくるが、今回は Single View Applicationテンプレート を選択したときにできた View Controller を使用したいので、Table View は delete する。

2.Navigation Controller シーンと View Controller シーンを、Relationshipセグエでつなぐ

設置した Navigation Controllerシーン は最初、Table View と Relationshipセグエでつながっている。これを View Controller シーンにつなぎかえるため、Navigation Controllerシーンを右クリック、もしくは Connections inspector を開く。「Triggered Segues」の「root view controller」に関連付けられている Table View Controller を解除して、View Contoroller につなぎ直す。

3.View Controller(画面1)にボタンを設置する

View Controller シーン(画面1)に、Object library からドラッグした Button を設置する。

4.View Controller(画面2)を設置する

ボタンを押したときの遷移先になる、View Controller シーン(画面2)を設置する。Object library から View Controller を選択してドラッグする。分かりやすく、label で「画面2」とでも書いておく。

新しく設置した View Controller シーン(画面2)には、ViewController.h(m)などのファイルがまだないので追加する。「File」-「New」-「File」-「Cocoa Touch Class」で「NextViewClass」などとそれっぽい名前をつける。そのあと、Storyboardでできたファイルと関連付けをおこなう。「identity inspector」の「Custom Class」から先ほどつけた名前を選択。

詳細はこちら

5.「画面1のボタン」とView Controller(画面2)をPush セグエでつなぐ

「画面1のボタン」を右クリック、および Connections Inspector にある Triggered Segues 項目の action を View Controller シーン(画面2)にドラッグする。選択項目が出てくるので「push(deprecated)」を選択すると、Push セグエで関連付けされる。

プログラムをビルドして実行して、動作に問題が無いか確認する。

画面が真っ暗で何も表示されない場合は、Navigation Controller に「Is initial View Controller」にチェックが入っている確認する。

タイトルとURLをコピーしました