前提・実現したいこと
storyboardでsegueを接続しています。
<VC名>:<Hutolist>→<Hutolist2>→<tenkaizu>の順で画面遷移していくのですが、
<Hutolist>で得たボタンのタグの数値を<tenkaizu>にも渡したいと思っています。
ご教授よろしくお願いします。
試したこと
<Hutolist>→<Hutolist2>でのボタンのタグの数値の受け渡しは出来ているのでそれを参考にして、
<Hutolist>→<tenkaizu>にsegueを接続し同様にコーディングしてみたのですが、受け渡しがうまくいきませんでした。
該当のソースコード
<Hutolist.swift>
swift
1import UIKit 2 3class Hutolist: UIViewController,UIActionSheetDelegate{ 4 5 //Unwind Segue の設定 6 @IBAction func backhutolist(segue: UIStoryboardSegue) {} 7 8 9 override func viewDidLoad() { 10 super.viewDidLoad() 11 // Do any additional setup after loading the view. 12 } 13 14 15 @IBAction func hutoaction(_ sender: UIButton) { 16 let hutotagNumber = sender.tag 17 print("タグナンバーは(hutotagNumber)です。") 18 19 //タグをsenderでprepareに送る 20 performSegue(withIdentifier: "gohuto", sender: hutotagNumber) 21 performSegue(withIdentifier: "totenkai", sender: hutotagNumber) 22 23 24 } 25 26 27 override func prepare(for segue: UIStoryboardSegue, sender:Any?){ 28 29 if segue.identifier == "gohuto"{ 30 //遷移先VCを取得して 31 if let hutosecondVC = segue.destination as? Hutolist2 { 32 //遷移先VCのプロパティにアクセス、senderで送られてきたタグをIntに変換して渡す 33 hutosecondVC.hutotappedBtnTag = sender as? Int 34 } 35 } 36 if segue.identifier == "totenkai"{ 37 if let tenkaiVC = segue.destination as? tenkaizu { 38 tenkaiVC.hutotappedBtnTag = sender as? Int 39 } 40 } 41 } 42 43 override func didReceiveMemoryWarning() { 44 super.didReceiveMemoryWarning() 45 // Dispose of any resources that can be recreated. 46 } 47 48} 49
<Hutolist2.swift>
Swift
1import UIKit 2 3class Hutolist2: UIViewController { 4 5 //Unwind Segue の設定 6 @IBAction func backhutolist2(segue: UIStoryboardSegue) {} 7 8 var hutotappedBtnTag: Int? 9 10override func viewDidLoad() { 11 super.viewDidLoad() 12 print("### hutotappedBtnTag:", hutotappedBtnTag as Any) 13} 14 override func didReceiveMemoryWarning() { 15 super.didReceiveMemoryWarning() 16 // Dispose of any resources that can be recreated. 17 } 18 19} 20
<tenkaizu.swift>
Swift
1import UIKit 2 3class tenkaizu: UIViewController { 4 5 var hutotappedBtnTag: Int? 6 7override func viewDidLoad() { 8 super.viewDidLoad() 9 // 10 print("### hutotappedBtnTag:", hutotappedBtnTag as Any) 11 12} 13 14 override func didReceiveMemoryWarning() { 15 super.didReceiveMemoryWarning() 16 } 17}
発生している問題・エラーメッセージ
実行自体はできるのですが、受け渡しがうまくいっていないようです。
tagが1のボタンを押して画面遷移しようとすると、下記のようにprintされます。
-タグナンバーは1です。
-### hutotappedBtnTag: Optional(4)
-2018-12-16 22:28:29.023022+0900 challenge[15296:5105189] Warning: Attempt to present <challenge.tenkaizu: 0x7f88a7f2b8e0> on <challenge.Hutolist: 0x7f88a7d1eb80> whose view is not in the window hierarchy!
-### hutotappedBtnTag: nil
補足情報(FW/ツールのバージョンなど)
Swiftのversionは4.1.2
Xcodeのversionは9.4.1
HutolistとHutolist2間のsegueの名前はgohuto
Hutolistとtenkaizu間のsegueの名前はtotenkai です。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/16 14:09
2018/12/16 14:38
2018/12/16 16:40
2018/12/16 16:47
2018/12/16 18:00
2019/01/01 06:53