Swift(Xcode)での値渡しがなぜかうまくできません。
行いたいこと:
①「日にち選択」ボタンを押すとDate PickerのPOP表示画面が出てくる。
②「OK」ボタンで元画面に遷移
③元画面のラベルに選択した日にちを表示させる。
①、②はできているのですが③ができません。
Printでいろいろ確かめると、
遷移直前の変数dateStringには選択した値が入っていますが、なぜか遷移時にnilになっているようです。
以下、画面とソースになります。UIvewとDateにExtensionしているので少し分かりにくいかもしれません。
お分かりになる方、ご教授願います。
遷移元 import UIKit class DesideViewController: UIViewController { var dateString : String? @IBOutlet weak var DateLabel: UILabel! override func viewDidLoad() { super.viewDidLoad() DateLabel.text = dateString } }
遷移先 import UIKit class TestpopViewController: UIViewController { @IBOutlet weak var datePicker: UIDatePicker! @IBOutlet weak var okButton: UIButton! var date :Date? var dateString: String? override func viewDidLoad() { super.viewDidLoad() okButton.addBorder(width: 0.5, color: UIColor.black, position: .top) } override func prepare(for segue: UIStoryboardSegue, sender: Any?) { if segue.identifier == "Go" { var date = datePicker.date var dateString = date.toString(dateFormat: "yyyy年MM月dd日") let nextVC = segue.destination as! DesideViewController print(dateString) nextVC.dateString = self.dateString } } @IBAction func tappedOK(_ sender: Any) { performSegue(withIdentifier: "Go", sender: nil) } }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。