遷移先の画面をstoryboard上で作る時の注意点
viewController
を追加したら、この画面用のプログラムファイルが必要なので、①ファイルを用意して②遷移先の画面のclass
にファイル名を追加する
ボタンをタップした場合の遷移
①遷移元の画面にButton
を追加する
②Button
からドラックアンドドロップして遷移先の画面に繋げる
③Present Modally
を選択
④矢印(segue)が出てくる
modal
で画面遷移を実装した場合、デフォルトでは背景に遷移元の画面が残るようになっているので、これを映らないようにするには
①segue
をクリック
②presentation
をFull Screen
に変更
戻る
操作を実装するには
①遷移先の画面に戻る
用のButton
を設置
②戻るButton
を押しながらプログラムにドラックアンドドロップし、Action
を選択して名前をつける
③処理内容に
dismiss(animated: true, completion: nil)
を追加する。
任意のタイミングで画面遷移させる
例えば...
遷移元の画面にカウンターを実装し、カウント数が10
になったら画面遷移させるという実装を行う場合...
(カウンターの数を表す変数をcount
とする)
①遷移元画面のviewController
上部に表示されているバーの黄色く丸いボタンから、遷移先の画面にドラックアンドドロップし、present Modally
を選択
②出現するsegue
をクリックし、identifier
に適当な名前をつける
③カウンターを実装しているメソッド内の処理に、
if count == 10{
performSegue(withIdentifier: "segueのidentifierに設定した名前", sender: nil)
// (中略)
}
値を渡しながら画面遷移を行う場合
↑の続き
①遷移先の画面に、遷移元の画面から受け取りたい値を格納するための変数を設置
var count2 = 0
とします
②遷移元の画面に
override func prepare(for segue: UIStoryBoardSegue, sender: Any?) {
if (segue.identifier == "segueのidentifierに設定した名前") {
let nextVC(自由に名前つける) = segue.destination as! 遷移先の画面の名前
nextVC.count2 = count
}
}
を記述
何をやっているかざっくり言うと、
①遷移元の画面に遷移先の画面を変数として宣言する(let~
の部分)
②遷移先の画面に作った、受け取る値を格納するための変数を呼び出し、渡したい値を代入する
これで、遷移先に値を渡すことができます。