iOS Swift-segue到类-使用prepareForSegue将Int值从ViewController传递到类
我正在尝试使用ViewOne中的以下代码,将ViewOne ViewController中的可变cellNumber值推送到RadioPlayer类RadioPlayer buy中的可变trackNumber:iOS Swift-segue到类-使用prepareForSegue将Int值从ViewController传递到类,ios,swift,Ios,Swift,我正在尝试使用ViewOne中的以下代码,将ViewOne ViewController中的可变cellNumber值推送到RadioPlayer类RadioPlayer buy中的可变trackNumber: override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { //var DestViewControler : ViewController = segue.destinationVi
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
//var DestViewControler : ViewController = segue.destinationViewController as! ViewController
var Dest2ViewControler : RadioPlayer = segue.destinationViewController as! RadioPlayer
// DestViewControler.trackNumber = cellNumber
Dest2ViewControler.trackNumber = cellNumber
}
但我在运行应用程序时遇到以下错误:
Could not cast value of type 'The_Radio_App.ViewController' (0x73e48) to 'The_Radio_App.RadioPlayer' (0x745a8).
这一行代码以绿色突出显示:
var Dest2ViewControler:RadioPlayer=segue.destinationViewController as!无线电播放机
所以我认为造成问题的原因是:segue.destinationViewController——因为RadioPlayer不是一个ViewController,只是一个类。我怎样才能修改它以使其生效 试试这个:
let dest2ViewControler = segue.destinationViewController as! Dest2ViewController
destViewControler.radioPlayer.trackNumber = cellNumber
如果radioPlayer是Dest2ViewController类中的radioPlayer成员变量,则错误表示segue.destinationViewController是ViewController类型的对象,而不是radioPlayer类型的对象。因此,强制强制转换会导致崩溃,因为您对编译器的断言不正确
在故事板中,转到表示此序列目的地的场景。转到该场景的视图控制器的标识检查器。选择故事板中的黄色框以选择VC,然后选中右侧面板中的第2项或第3项。请确保定义该类的字段为RadioPlayer。您好,谢谢您,但我没有将RadioPlayer用作任何故事板的ViewController—它只是一个用于保存播放声音功能的类。我可以仅使用segue在ViewController之间传输值吗?它不能用于将值从ViewController传输到类吗?不能。Segues仅用于管理视图控制器之间的转换和嵌入关系。如果您没有转换到新的视图控制器,则将RadioPlayer对象作为当前视图控制器类的属性。在视图控制器上定义的iAction方法上调用方法,而不是触发segue。在该方法中,更新radio player对象的trackNumber。