Xcode 在Swift中将数据转发到目标VC(带框架)?
我正在编写一个从二维码扫描仪获取数据的应用程序。我只是在实现基本功能,并且有第二个视图控制器,当检测到新的QR码时会触发该控制器。以下代码位于Xcode 在Swift中将数据转发到目标VC(带框架)?,xcode,swift,uiviewcontroller,segue,rsbarcodes,Xcode,Swift,Uiviewcontroller,Segue,Rsbarcodes,我正在编写一个从二维码扫描仪获取数据的应用程序。我只是在实现基本功能,并且有第二个视图控制器,当检测到新的QR码时会触发该控制器。以下代码位于RSBarcodes的自定义视图控制器中,并使用CocoaPods实现 它不会编译时出错 “使用未声明的类型SecondViewController” 我试图公开我的第二个ViewController,重新启动XCode,但没有任何效果。感谢您的帮助。谢谢大家! override public func prepareForSegue(segue: UIS
RSBarcodes
的自定义视图控制器中,并使用CocoaPods
实现它不会编译时出错 “使用未声明的类型SecondViewController” 我试图公开我的第二个ViewController,重新启动XCode,但没有任何效果。感谢您的帮助。谢谢大家!
override public func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
let destinationVC = segue.destinationViewController as! SecondViewController
destinationVC.label = "test"
}
解决方案:
添加到“复制捆绑资源”,然后我的VC立即被编译器识别。首先,您必须通过检查segue标识符名称来验证要推送到哪个segue。然后,您必须检查是否可以创建destinationVC变量,然后是否可以使用“?”而不是“!”来展开它
override public func prepareForSegue(segue: UIStoryboardSegue, sender:AnyObject?) {
if segue.identifier == "nameOfMySegue" {
if let destinationVC = segue.destinationViewController as? SecondViewController {
destinationVC.label = "test"
}
}
}
解决方案:
添加到“复制捆绑资源”,然后我的VC立即被编译器识别。你也可以发布包含
SecondViewController
声明的代码吗?你看过这篇文章了吗,我的意思是说您是否已在目标成员身份中添加了视图控制器swift文件?它是扩展UIViewController的默认Cocoa Touch类。它没有方法重写,只有标签的IBOutlet。我真的对目标和类似的东西感到困惑,所以这可能是一个问题。类是如何声明的?您的文件可能被命名为SecondViewController
,但如果您的类是:class Secon\u ViewController:UIViewController{}
,则仍然没有任何意义。请查看该文件是否与故事板和图像一起添加到副本包资源路径中。我感谢您的回复。但是,这不是关于展开可选类型的问题。我们正在做一个显式的向下转换,它根本不识别SecondViewController。我说这可能是一个可选问题的唯一原因是因为苹果对Swift在使用最新版本的Xcode进行可选解包裹方面做了一些语言更改。我自己在显式向下转换变量方面也有一些问题。这可能不是你的问题,但我觉得这是一个足够简单的代码更改,值得尝试。这一点很好。我只是试了一下,但还是有同样的错误。