代表未在SWIFT iOS中调用
发布时间:2020-12-14 04:48:48 所属栏目:百科 来源:网络整理
导读:我创建了2个视图,一个是使用协议和委托.对于第一个视图,不调用Delegate函数. 我的FirstView控制器:我在这里访问代理功能. import UIKitclass NextViewController: UIViewController,DurationSelectDelegate { //var secondController: DurationDel? var sec
我创建了2个视图,一个是使用协议和委托.对于第一个视图,不调用Delegate函数.
我的FirstView控制器:我在这里访问代理功能. import UIKit class NextViewController: UIViewController,DurationSelectDelegate { //var secondController: DurationDel? var secondController: DurationDel = DurationDel() @IBAction func Next(sender : AnyObject) { let nextViewController = DurationDel(nibName: "DurationDel",bundle: nil) self.navigationController.pushViewController(nextViewController,animated: true) } override func viewDidLoad() { super.viewDidLoad() secondController.delegate=self } func DurationSelected() { println("SUCCESS") } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } } 我的SecondView控制器:我在这里创建委托. import UIKit protocol DurationSelectDelegate { func DurationSelected() } class DurationDel: UIViewController { var delegate: DurationSelectDelegate? @IBAction func Previous(sender : AnyObject) { //let game = DurationSelectDelegate() delegate?.DurationSelected() self.navigationController.popViewControllerAnimated(true) } override func viewDidLoad() { super.viewDidLoad() } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } } 解决方法
对我来说,看起来你正在推动一个你没有实际设置委托的视图控制器.如果更改“下一步”功能,则包括该行
nextViewController.delegate = self 你应该看到代表团的工作.在执行此操作时,您还可以删除“secondController”的创建,因为它看起来是多余的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |