わからないこと
ViewControllerからSecondViewControllerにPassクラスのインスタンスを受け渡すところがわかりません。
ViewControllerでPassクラスのインスタンス化を以下のように行い
let pass = Pass()
performSegueを実行
func segueToSecondViewController() {
self.performSegue(withIdentifier: "toSecondViewController", sender: self.pass) }
以下では特にクラスを渡す型は何に設定すればよろしいでしょうか?
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "toSecondViewController" { let secondViewController = segue.destination as! SecondViewController secondViewController.pass = sender as! [**ここの部分**] } }
コード全文
ViewController
1import UIKit 2 3class ViewController: UIViewController { 4 5 @IBOutlet weak var blueview: UIView! //UIViewのアウトレット接続 6 let pass = Pass() //Passクラスのインスタンス化を行う 7 override func viewDidLoad() { 8 super.viewDidLoad() 9 blueview.isHidden = true //UIViewを隠しておく 10 pass.vc = self //Passクラスのインスタンス自身を保持 11 } 12 //重要箇所 上でPassクラスをインスタンス化したpassをSecondViewControllerに渡したい 13 func segueToSecondViewController() { 14 self.performSegue(withIdentifier: "toSecondViewController", sender: self.pass) 15 } 16 17 override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 18 if segue.identifier == "toSecondViewController" { 19 let secondViewController = segue.destination as! SecondViewController 20 secondViewController.pass = sender as! [//ここにどのような型を入れればいいのかがわかりません] 21 } 22 } 23}
PassClass
1import UIKit 2 3class Pass: NSObject { 4 5 public weak var vc: ViewController! 6 7 func AddChange() { 8 vc.blueview.isHidden = false //UIViewを表示する 9 } 10}
SecondViewController
1import UIKit 2 3class SecondViewController: UIViewController { 4 5 //PassクラスのインスタンスをここでViewControllerから受け取りたい 6 7 override func viewDidLoad() { 8 super.viewDidLoad() 9 } 10 11 @IBAction func add(_ sender: Any) { 12 pass.AddChange() //ボタンが押されたらViewControllerから受け取ったPassクラスのAddChange()でblueviewを表示させる 13 } 14}
宜しくお願い致しますm(_ _)m
回答1件
あなたの回答
tips
プレビュー