• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

swift协议传值的实现

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

首先呢说下结构 

一个ViewController 

一个ModelViewController

在ModelViewController中定义了一个协议

这个逻辑 从第一个界面进入第二个界面  从第二个界面回到第二个界面并通过协议传值回到第一个界面 打印输出值

ModelViewController.swift

protocol lwkDelegate {//定义协议

    func changeString(newString:String)

}

在这个ModelViewControler类中实现一些简单的逻辑

class ModelViewController: UIViewController{

    

    

    var delegate:lwkDelegate?

    var btn:UIButton?

    

 

    override func viewDidLoad() {

        super.viewDidLoad()

        btn=UIButton(frame:CGRectMake(110,80,100,20))

        btn!.backgroundColor=UIColor.grayColor()

        btn!.setTitle("传值回第一个界面",forState:.Normal)

        //绑定事件

        btn!.addTarget(self,action:#selector(ModelViewController.btnOnClick),forControlEvents: UIControlEvents.TouchUpInside)

        

        self.view.addSubview(btn!)

    }

 

    func btnOnClick(){

        let str:String = "liuweikai"

        delegate!.changeString(str)//调用协议方法

        self.dismissViewControllerAnimated(true, completion: nil)

    }

在ViewController类中

class ViewController: UIViewController,lwkDelegate{//接受协议

    var btn:UIButton?

    

 

    override func viewDidLoad() {

        super.viewDidLoad()

        // Do any additional setup after loading the view, typically from a nib.

        

        btn=UIButton(frame:CGRectMake(110,80,100,20))

        btn!.backgroundColor=UIColor.greenColor()

        btn!.setTitle("去二个界面",forState:.Normal)

        //绑定事件

        btn!.addTarget(self,action:#selector(ViewController.btnOnClick),forControlEvents: UIControlEvents.TouchUpInside)

        

        self.view.addSubview(btn!)

    }

    

    func btnOnClick(){

        let vc = ModelViewController()

        vc.delegate = self //委托方

        

        self.presentViewController(vc, animated: true, completion: nil)

//        self.navigationController?.pushViewController(vc, animated: true)

    }

    func changeString(newString:String) {//实现协议的方法

        

        print(newString)

    }


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
swift高级模式匹配ifcase发布时间:2022-07-13
下一篇:
Swift_字符串详解(String)发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap