我试图将数据从模态ViewController传递到他的源ViewController.我想我必须使用授权,但不行.
protocol communicationControllerCamera{ func backFromCamera() } class Camera: UIViewController{ var delegate: communicationControllerCamera init(){ self.delegate.backFromCamera() } } class SceneBuilder: UIViewController,communicationControllerCamera{ func backFromCamera(){ // Never called println("YEAHH") } }
backFromCamera方法它没有被调用.我做错了什么?
解决方法
你没有设置一个代理,所以当你尝试回调FromCamera()时它是空的.
这是一个简单的工作示例,您可以测试.请注意使用可选类型(?)作为委托.
// Camera class protocol communicationControllerCamera { func backFromCamera() } class Camera: UIViewController { var delegate: communicationControllerCamera? = nil override func viewDidLoad() { super.viewDidLoad() self.delegate?.backFromCamera() } } // SceneBuilder class class SceneBuilder: UIViewController,communicationControllerCamera { override func viewDidLoad() { super.viewDidLoad() } override func viewDidAppear(animated: Bool) { super.viewDidAppear(animated) var myCamera = Camera() myCamera.delegate = self self.presentModalViewController(myCamera,animated: true) } func backFromCamera() { println("Back from camera") } }
您可以在Apple’s Swift documentation找到所需的所有信息.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。