ios – 使用prepareForSegue Swift传递对象

ios – 使用prepareForSegue Swift传递对象,第1张

概述我正试图通过prepareForSegue()将一个对象传递给另一个场景, override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { // Get the new view controller using [segue destinationViewController]. 我正试图通过prepareForSegue()将一个对象传递给另一个场景,
overrIDe func prepareForSegue(segue: UIStoryboardSegue,sender: AnyObject?) {        // Get the new vIEw controller using [segue destinationVIEwController].        var nextScene =  segue.destinationVIEwController as! VehicleDetailstableVIEwController        // Pass the selected object to the new vIEw controller.        if let indexPath = self.tableVIEw.indexPathForSelectedRow() {            let selectedVehicle = vehicles[indexPath.row]            nextScene.currentVehicle = selectedVehicle        }    }

而且我有currentVehicle对象来捕捉这些对象.但是,当我尝试运行时,它会崩溃并且收到关于downcasting的错误.

编辑错误

Could not cast value of type ‘XXX.displayVIEwController’
(0x1082dcd80) to ‘XXX.VehicleDetailstableVIEwController’
(0x1082dc9a0). (lldb)

解决方法 你必须在故事板中给出一个标识符(说mySegue)

使用XCode 7,swift 2.x

overrIDe func prepareForSegue(segue: UIStoryboardSegue,sender: AnyObject?){....}

被调用为所有segues被称为形式您当前的UIVIEwController.所以识别者是区分不同的段落

然后使用这段代码:

overrIDe func prepareForSegue(segue: UIStoryboardSegue,sender: AnyObject?) {    if segue.IDentifIEr == "mySegue" {    var nextScene =  segue.destinationVIEwController as! VehicleDetailstableVIEwController    // Pass the selected object to the new vIEw controller.    if let indexPath = self.tableVIEw.indexPathForSelectedRow {        let selectedVehicle = vehicles[indexPath.row]        nextScene.currentVehicle = selectedVehicle    }  }}

使用Xcode 8,swift 3.x

overrIDe func prepare(for segue: UIStoryboardSegue,sender: Any?) {    if segue.IDentifIEr == "mySegue",let nextScene = segue.destination as? VehicleDetailstableVIEwController,let indexPath = self.tableVIEw.indexPathForSelectedRow {        let selectedVehicle = vehicles[indexPath.row]        nextScene.currentVehicle = selectedVehicle    }}

在nextScene之后放置一个断点,看看它是否在单击tableVIEw中的任何单元格时被触发.如果不是,则故事板中提供的标识符名称必须与此处给出的不同.

总结

以上是内存溢出为你收集整理的ios – 使用prepareForSegue Swift传递对象全部内容,希望文章能够帮你解决ios – 使用prepareForSegue Swift传递对象所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1112887.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存