やりたいこと。
遷移先のviewControllerのフィールド変数に値をセットする。
遷移もとのrableviewのcellをタップするcellの情報からuser情報を遷移先のプロパティにセットして
各々のフィールド変数へデータを挿入するコードです。
該当のコード
swift
1//遷移元 2func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { 3 4 let user = users[indexPath.row] 5 self.selectedUser = user 6 7 let storyboard = UIStoryboard(name: "UserInfo", bundle: nil) 8 let viewController = storyboard.instantiateViewController(identifier: "UserInfoViewController") as! UserInfoViewController 9 viewController.user = user 10 navigationController?.pushViewController(viewController, animated: true) 11}
swift
1//遷移先 2import UIKit 3import Nuke 4class UserInfoViewController: UIViewController { 5 6 var user:User? { 7 didSet { 8 if let user = user { 9 guard let url = URL(string: user.profileImageUrl) else { return } 10 Nuke.loadImage(with: url, into: ①userImageView①) 11 ②userNameLabel②.text = user.username 12 } 13 } 14 } 15 @IBOutlet weak var userImageView: UIImageView! 16 @IBOutlet weak var userNameLabel: UILabel! 17 18 override func viewDidLoad() { 19 super.viewDidLoad() 20 } 21} 22
こので実行してセルをタップするとエラーが発生します。
内容としては、
①にエラーが発生して
Unexpectedly found nil while implicitly unwrapping an Optional value
というエラーが発生します。
行ったこととしては、
1:アウトレット接続の確認
2:画像の読み込み方法にエラーがあるのかと思い,didset内をuserNameLabel.text = user.usernameのみ残すと次は②で同じエラーが発生しました。
現在色々調べていますがもし原因がわかる方がいらっしゃったらよろしくお願いします。
あなたの回答
tips
プレビュー