前提・実現したいこと
Segueを用いてProfileViewから、自作のクラスをEditViewに渡して表示したい。
現状ではボタンが押された時、EditViewに遷移して、値をもとに各Fieldに表示された直後、アプリが落ちてしまします。
EditVCのprint()がなぜ、二回呼ばれるのか分からず困っています。
二回目のEditVCのprint()が呼ばれた時に、なぜnilなのかも理解できていません。
発生している問題・エラーメッセージ
Fatal error: Unexpectedly found nil while unwrapping an Optional value
###ProfileViewのボタンがをされた時の処理
@IBAction func editProfileTaped(_ sender: Any) { print("Tap") let userData: UserModel = userProfile! print("userData Name :",userData.userName) performSegue(withIdentifier: "edit", sender: userData) print("userData ID :",userData.userId) } override func prepare(for segue: UIStoryboardSegue, sender: Any?) { if segue.identifier == "edit" { let editVC = segue.destination as? EditViewController print("Sender 1 ",sender as Any) editVC?.userProfile = sender as? UserModel print("Sender 2 ", sender as Any) } }
EditViewのViewDidLoad()
override func viewDidLoad() { super.viewDidLoad() print("EditVC userProfile",userProfile) userIconView.sd_setImage(with: URL(string: userProfile!.userIcon), completed: nil) userNameLabel.text = userProfile!.userName ageLabel.text = String(userProfile!.userAge) genderSegmented.selectedSegmentIndex = genderConvertInt(Gender: userProfile!.userGender) DescriptionTextView.text = userProfile?.Description }
補足情報(FW/ツールのバージョンなど)
swift5
xcode Version 11.4 (11E146)
間違えました
回答2件
あなたの回答
tips
プレビュー