前提・実現したいこと
FirstViewController()のdidSelectRowAt indexPathの中でtableView.cellForRow(at: indexPath)メソッドを使用して、遷移する先のNextViewControllerのlabelにセルの値を渡せています。
セルの値は、例えば "おはよう"といったstring型です。
タップするセルのindexは問いません。
発生している問題・エラーメッセージ
しかしNextViewControllerのviewDidLoadの中でlabelをprintしてみると
optional("")
とログに出力されます。
どうしてこの出力なのでしょうか?
NextViewControllerでは値が空になっています。
セルの値は必ず入ってる前提なので、空であることはありえません。
どうにかセルの値をNextViewControllerへ遷移する前、もしくは後でlabelに渡したいのです。
該当のソースコード
//FirstViewController() func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { let nextView = NextViewController() nextView.label.text = (tableView.cellForRow(at: indexPath)?.textLabel?.text)! self.navigationController?.pushViewController(NextViewController(), animated: true) }
class NextViewController: UIViewController { let firstViewController = FirstViewController() var label = UILabel() override func viewDidLoad() { super.viewDidLoad() view.backgroundColor = .red view.addSubview(label) label.backgroundColor = .white //labelの制約はここには書いていません。 print(" ここまで値を保持したいがOptional("")になっている。(label.text)") } } ``` ### 試したこと 値の渡し方についてはブログなどを拝見して試しました。 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/03/06 04:22