前提・実現したいこと
TableViewCell内のボタンをタップすると遷移元に戻り、遷移元にタップしたCellのLabelテキストを表示させたい。
【実現しようとした流れ】
セルのボタンをタップ => IBActionでセルのテキストを変数に入れる => prepareでテキストを遷移元に反映させる => unwind Segueで元の遷移元に戻る
発生している問題・エラーメッセージ
遷移元には戻るが、prepareで渡したい変数の中身が空になってしまう。
該当のソースコード
遷移元(FirstViewController)
Swift
1//タップされたセル内のテキストを表示するLabel 2@IBOutlet weak var word1: UILabel! 3@IBOutlet weak var word2: UILabel! 4@IBOutlet weak var word3: UILabel! 5 6@IBAction func unwind(_ segue:UIStoryboardSegue){}
テーブルビュー(TableViewController)
Swift
1// 遷移元に送るテキストを入れる変数 2var cellWord1: String = String() 3var cellWord2: String = String() 4var cellWord3: String = String() 5 6//遷移元にテキスト情報を送って、表示させる 7override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 8 if(segue.identifier == "myUnwindSegue") { 9 print("セル1:(cellWord1),セル2:(cellWord2),セル3:(cellWord3)") 10 //-> 結果は"セル1:,セル2:,セル3:"で変数にテキスト情報が入っていない。 11 let FirstVC:FirstViewController = segue.destination as! FirstViewController 12 FirstVC.word1.text = cellWord1 13 FirstVC.word2.text = cellWord2 14 FirstVC.word3.text = cellWord3 15 } 16 }
テーブルセルのクラス(TableViewCell)
Swift
1//遷移元に表示させたいテキストが入ったLabel 2@IBOutlet weak var w1: UILabel! 3@IBOutlet weak var w2: UILabel! 4@IBOutlet weak var w3: UILabel! 5 6//セルのボタンを押した時の処理 7@IBAction func tappedAction(_ sender: Any) { 8 let tableVC: TableViewController = TableViewController() 9 tableVC.cellWord1 = w1.text! 10 tableVC.cellWord2 = w2.text! 11 tableVC.cellWord3 = w3.text! 12 print(tableVC.cellWord1) 13 // -> 結果は"セル1:Label1,セル2:Label2,セル3:Label3"でテキスト情報が入っている。 14}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/03/06 10:01 編集
2019/03/07 00:57
2019/03/08 08:20