【发布时间】:2021-09-27 12:22:30
【问题描述】:
我试图将一个对象从一个视图控制器传递到另一个视图控制器,但接收器收到 nil 并抛出一个错误说: 致命错误:在隐式展开可选值时意外发现 nil:文件
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "sPropSegue" {
if let indexPath = tableView.indexPathForSelectedRow {
let prop = modelProperty.props[indexPath.row]
let dVeiwController = segue.destination as? PDViewController
detailVeiwController?.property = prop
}
}
}
UIViewController 中的代码
var property: Property!
override func viewDidLoad() {
super.viewDidLoad()
propImage.image = UIImage(named: property.imageName)
priceLable.text = property.price
addressTextView.text = property.address //propImage.image = UIImage()
// Do any additional setup after loading the view.
}
请帮我解决这个问题。
提前谢谢你!
【问题讨论】:
-
是否调用了
detailVeiwController?.property = prop?如何触发“segue”?通过代码?通过在 Storyboard 中从单元格连接到下一个视图控制器?如果是,则将其删除,然后从视图控制器执行到下一个,并在 didSelectRow 中调用performSegue() -
我通过情节提要使用连接单元触发
-
您确定目标是 PDViewcontroller 吗?您是否将情节提要上的视图控制器属性设置为正确的类,好像这不会导致条件链接中的 nil 值?