<実現したいこと>
ViewControllerXにボタンa、bを二つ配置し、ボタンaをタップするとViewControllerAに、ボタンbをタップするとViewControllerBに遷移する。
(ViewControllerAの情報をViewControllerXに、ViewControllerXの情報をViewControllerBに渡す。)
<試したこと>
先にXA間を繋げました。その際にperformSegue(withIdentifier)
とprepare(for segue)
を使用しました。
次にXB間を同じように繋げようとしたところ、下記のようなエラーメッセージが表示されました。
Could not cast value of type 'wordcase_0_2.ScreenViewController' (0x1070db550) to 'wordcase_0_2.AddViewController' (0x1070db5b0).
('wordcase_0_2.ScreenViewController'はBで、'wordcase_0_2.AddViewController'はAを指します。)
調べてみたところ、prepare(for segue)
の中で、Segueに割り当てたIdentifierごとにif文を用いて条件分岐させる必要があるのではないかと考えました。
しかし、どのように書けばよいのか分かりません。またこの推測は合っていますでしょうか。ご教授願います。
分岐元(X)のViewControllerに記述したコードは下記の通りです。
ViewControllerswift
1 2@IBAction func AddTransButton(_ sender: Any) { 3 4 performSegue(withIdentifier: "transAdd", sender: nil) 5 6 } 7 8 9 10 @IBAction func ScreenTransButton(_ sender: Any) { 11 12 performSegue(withIdentifier: "transScreen", sender: nil) 13 } 14 15 override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 16 17 let addVC = segue.destination as! AddViewController 18 addVC.delegate = self 19 20 }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/26 06:08