Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS Swift-segue到类-使用prepareForSegue将Int值从ViewController传递到类_Ios_Swift - Fatal编程技术网

iOS Swift-segue到类-使用prepareForSegue将Int值从ViewController传递到类

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

我正在尝试使用ViewOne中的以下代码,将ViewOne ViewController中的可变cellNumber值推送到RadioPlayer类RadioPlayer buy中的可变trackNumber:

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。