iOSアプリ開発メモ No.9 -画面遷移の条件分岐-
選択されたパーツによって遷移するViewControllerを違うものにしたい!
でも1つのButtonからは1つのSegueしか生えてこないから、複数のViewControllerを選ない…。
解決法
ViewConrollerからのSegue
方法は意外と簡単で、ButtonなどのパーツからではなくViewControllerそのものからSegueをにゅっと伸ばします。
そうしたら、そのSegueを選択して画面右側のところ(Attributes Inspector)を見ます。
Identifier(識別子)にわかりやすい適当な名前をつけましょう。
これで「条件によって異なるViewControllerに遷移する」準備が整いました!
ちょっとコーディング
Identifierでつけた名前をプログラム上で指定することになります。
それを可能にするのがperformSegue()というメソッドです。
実際の書き方としては
となります。
(senderのあとがなんでnilなのかは私も知りません。)
たとえば「hogeという変数に入っている値によって、[次へ]というButtonをおした時に遷移するViewControllerを変えたい」としましょう。
まずは[次へ]ButtonをActionとしてConnectしてnextHogeという名前をつけます。
次にif文で条件式を書いて、実行部分で先程のperformSegue()メソッドを使っていきます。
引数の(withIdentifier: “”)の部分に呼び出したいSegueの名前を指定します。
@IBAction func nextHoge(_ sender: Any) {}}
これで完了!
新しいメソッドが出て来るぐらいで特別難しいことはなかった感じですね。
今回参考にしたページ。
公式ドキュメント