首页 > 解决方案 > 对象在 swift 中是 nil segue

问题描述

我试图将一个对象从一个视图控制器传递到另一个视图控制器,但接收器收到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.
    }

请帮我解决这个问题。

先感谢您!

标签: swiftsegue

解决方案


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

所以尝试调试它。确保 prop 不为零。

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

还要确保您self.table.delegate = self在尝试执行 segue 的控制器中有。


推荐阅读