Object is nil segue in swift



我试图将一个对象从一个视图控制器传递到另一个视图控制器,但接收器接收到nil并抛出一个错误:致命错误:在隐式展开可选值时意外发现nil: file

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.
}

请帮我解决这个问题。

提前感谢!

您需要确保从源vc(而不是表单元格)建立segue到目标vc,以便override func prepare(for segue被称为

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
performSegue(withIdentifier:"sPropSegue",sender:nil)
}

根据我的理解,你没有在你的PDViewController中获得属性对象。

所以试着调试它。确保prop不是nil

尝试在注释viewDidLoad()代码后执行相同的代码。

还要确保在你想要执行segue的控制器中有self.table.delegate = self

最新更新