大佬教程收集整理的这篇文章主要介绍了【swift_4】swift之代理传值(delegate的用法),大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_301_1@具体的代码,详见Demo:链接: http://pan.baidu.com/s/1gdkyWE3 密码: 4mhv
class ViewController: UIViewController,GetmessageDelegate { var _button:UIButton? var _label:UILabel? override func viewDidLoad() { super.viewDidLoad() self.title = "RootViewController" //创建label 用来接收传过来的值 _label = UILabel(frame: CGRect(x: 50,y: 100,width: 220,height: 44)) _label?.text = "get message from next page" _label?.textAlignment = NSTextAlignment.Center _label?.BACkgroundColor = UIColor.cyanColor() self.view.addSubview(_label!) //创建button 点击跳转到下一个界面 _button = UIButton(frame:CGRect(x:60,y:200,width:200,height:44)) _button?.settitle("go to next page",forState: UIControlState.Normal) _button?.settitleColor(UIColor.yellowColor(),forState: UIControlState.Normal) _button?.BACkgroundColor = UIColor.blueColor() _button?.addTarget(self,action: "nextPage",forControlEvents: UIControlEvents.TouchUpInsidE) self.view.addSubview(_button!) } //push func nextPage() { let nextVC = NextViewController() //指定代理 nextVC.delegate = self self.navigationController!.pushViewController(nextVC,animated:truE) } //接收传过来的值 func getmessage(controller:NextViewController,String:string) { _label?.text = String if(String == "") { _label?.text = "null" } } }
//创建协议 protocol GetmessageDelegate:NSObjectProtocol { //回调方法 传一个String类型的值 func getmessage(controller:NextViewController,String:string) } class NextViewController: UIViewController { var delegate:GetmessageDelegate? var _textField:UITextField? override func viewDidLoad() { super.viewDidLoad() self.title = "SecondViewController" self.view.BACkgroundColor = UIColor.whiteColor() //创建textField 用来输入要传的值 _textField = UITextField(frame: CGRect(x: 60,width: 200,height: 44)) _textField?.borderstyle = UITextBorderstyle.RoundedRect _textField?.placeholder = "input sth to send BACk" self.view.addSubview(_textField!) //创建返回的button var myButton = UIButton(frame:CGRect(x:60,height:44)) myButton.center = CGPointMake(160,200) myButton.settitle("send message BACk",forState:.Normal) myButton.addTarget(self,action:"goBACk",forControlEvents:.TouchUpInsidE) myButton.BACkgroundColor = UIColor.blueColor() self.view.addSubview(myButton) } func goBACk() { //调用代理方法 if((delegatE) != nil) { delegate?.getmessage(self,String:_textField!.text) self.navigationController?.popToRootViewControllerAnimated(true) } } }
以上是大佬教程为你收集整理的【swift_4】swift之代理传值(delegate的用法)全部内容,希望文章能够帮你解决【swift_4】swift之代理传值(delegate的用法)所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。