本文简单介绍了使用Delegate方法的进行值的传递,改变上一个界面的字体大小和颜色

首先创建一个导航视图:

let viewC = ViewController();
        let navigationC = UINavigationController.init(rootViewController: viewC);
        window?.rootViewController = navigationC;

在ViewController视图中创建跳转按钮和显示字体的UILabel

override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        
        self.title = "首页"
        self.view.backgroundColor = UIColor.lightGrayColor();
        
        //添加按钮
        let buttonN = UIButton.init(frame: CGRectMake(100, 80, 150, 50));
        buttonN.setTitle("进入下一层", forState: .Normal);
        buttonN.setTitleColor(UIColor.blueColor(), forState: .Normal);
        buttonN.addTarget(self, action: #selector(buttonNClick), forControlEvents: .TouchUpInside);
        self.view.addSubview(buttonN);
        
        //显示字体
        nameLabel = UILabel.init(frame: CGRectMake(50, 200, 200, 50));
        nameLabel.text = "111111111";
        nameLabel.font = UIFont.systemFontOfSize(20);
        nameLabel.textColor = UIColor.redColor();
        nameLabel.layer.borderWidth = 1;
        self.view.addSubview(nameLabel);
        
    }
    //按钮的点击方法
    func buttonNClick(btn:UIButton) {
        let oneVC = OneViewController();
        
        //从前往后传值,这里跟OC中的在 .h 文件中利用@property进行描述的变量类似效果
        oneVC.nameStr = "你好,明天";
        
        //设置协议delegate
        oneVC.delegateFont = self;
        self.navigationController?.pushViewController(oneVC, animated: true);
    }
    
    //实现代理的方法
    func fontSizeDidChange(controllerR: OneViewController, fontSize: Int, fontColor: UIColor) {
        nameLabel.font = UIFont.systemFontOfSize(CGFloat(fontSize));
        nameLabel.textColor = fontColor;
    }

在OneViewController文件中创建代理方法,并在上一个界面实现方法:

//定义代理对象
    var delegateFont:FontSizeChangeDelegate?;//定义一个协议,实现可以从前往后传值
protocol FontSizeChangeDelegate:NSObjectProtocol{
    //定义一个delegate函数
    //参数1:代理创建时所在的Controller,参数2:字体大小,参数3:字体颜色
    func fontSizeDidChange(controllerR:OneViewController ,fontSize:Int,fontColor:UIColor);
    
    //可以添加更多的协议方法......
}

//定义代理对象
    var delegateFont:FontSizeChangeDelegate?;

//使用代理方法
        if (delegateFont != nil) {
            //调用协议方法
            delegateFont?.fontSizeDidChange(self, fontSize: fontSize, fontColor: colorR)
        }

效果显示:

   

注意:上面是部分代码显示,详细使用请下载Demo:http://download.csdn.net/detail/hbblzjy/9597865

Swift基础之Delegate方法的使用的更多相关文章

  1. Swift基础之init方法,实例方法,类方法(静态方法)的使用(多标签Demo)

    Xcode更新过后,有些方法都进行了改变,Demo中有变化的都进行了简单的标记,具体以后遇见再说 创建一个UIView类,用init方法创建两种类型,显示多标签,创建静态方法进行调用,创建类方法进行调 ...

  2. Swift基础--Swift中的分类以及在分类中扩展init方法的注意事项

    Swift中的分类 1.创建一个空的swift文件 2.关键字extension,格式: extension 要扩展的类名 {} extension UIButton { } Swift中扩展init ...

  3. [C#] C# 基础回顾 - 匿名方法

    C# 基础回顾 - 匿名方法 目录 简介 匿名方法的参数使用范围 委托示例 简介 在 C# 2.0 之前的版本中,我们创建委托的唯一形式 -- 命名方法. 而 C# 2.0 -- 引进了匿名方法,在 ...

  4. swift基础:第六部分:类与对象

    http://reactnative.cn/docs/0.24/getting-started.html#content(react Native 开发文档) 互联网这个时代,你松懈一天,就会有很多很 ...

  5. swift基础:第二部分:函数和闭包

    今天本来想利用上午的时间本来打算将swift基础部分学习完的,不巧的是,后台来和我讨论用户评价的接口,讨论过后,商讨出一种可行的方案,十几分钟时间过去了,我拿到将接口介入到已经完成的页面中,完美,终于 ...

  6. Swift基础语法学习总结(转)

    Swift基础语法学习总结 1.基础  1.1) swift还是使用// 和/* */ 来注释,并且/* */允许多行注释. 1.2) swift使用print和println打印,它的传参是一个泛型 ...

  7. Swift基础--通知,代理和block的使用抉择以及Swift中的代理

    什么时候用通知,什么时候用代理,什么时候用block 通知 : 两者关系层次太深,八竿子打不着的那种最适合用通知.因为层级结构深了,用代理要一层一层往下传递,代码结构就复杂了 代理 : 父子关系,监听 ...

  8. Swift基础语法学习总结

    Swift基础语法学习总结Swift高级语法学习总结Swift语法总结补充(一) 1.基础  1.1) swift还是使用// 和/* */ 来注释,并且/* */允许多行注释. 1.2) swift ...

  9. iOS Swift 模块练习/swift基础学习

    SWIFT项目练习     SWIFT项目练习2 iOS Swift基础知识代码 推荐:Swift学习使用知识代码软件 0.swift中的宏定义(使用方法代替宏) 一.视图  +控件 1.UIImag ...

随机推荐

  1. 网站用户身份识别俩大招之cookie

    导航: 原理介绍 代码实现 过程分析 追踪Cookie 原理介绍 众所周知,http协议是无状态的协议,简单理解是用户的前一步操作和后一步操作之间没有关系,互相不知道,不干扰.而在很多场景下,浏览网页 ...

  2. python学习之路基础篇(第六篇)

    一.算法 冒泡排序 两两比较 打的沉下去,小的浮上来  从而把数字从小到大排列出来 选择排序 随机取一个索引作为最大值,然后和列表中的其他索引进行比较,如果l[0]<l[1],则将l[1]修改为 ...

  3. 跟着大佬重新入门DP

    数列两段的最大字段和 POJ2479 Maximum sum Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 41231 Acce ...

  4. Python 2.7 闭包的局限

    想法源自:http://stackoverflow.com/questions/141642/what-limitations-have-closures-in-python-compared-to- ...

  5. Android开发之手把手教你写ButterKnife框架(二)

    欢迎转载,转载请标明出处: http://blog.csdn.net/johnny901114/article/details/52664112 本文出自:[余志强的博客] 上一篇博客Android开 ...

  6. Android图表库MPAndroidChart(八)——饼状图的扩展:折线饼状图

    Android图表库MPAndroidChart(八)--饼状图的扩展:折线饼状图 我们接着上文,饼状图的扩展,增加折现的说明,来看下我们要实现的效果 因为之前对MPAndroidChart的熟悉,所 ...

  7. Ajax PHP JavaScript MySQL实现简易的无刷新在线聊天室

    思路 消息显示区 发消息 板块 消息显示 消息发送 优化 显示非重复性的数据 优化显示 加上滚动条 每次都显示最新消息 完整代码 前端代码 数据库表结构 服务器端代码 总结与展望 总结 展望 为更好的 ...

  8. 使用Contacts Contract Content Provider操作通讯录最佳实践

    Android向所有被赋予READ_CONTACTS权限的应用程序提供了联系人信息数据库的完全访问权限.Contacts Contract使用3层数据模型去存储数据,下面介绍Contacts Cont ...

  9. 手动添加SSH支持、使用c3p0

    之前做的笔记,现在整理一下:大家有耐心的跟着做就能成功: SSH(struts2.spring.hibernate) *  struts2      *  充当mvc的角色 *  hibernate ...

  10. J-Robot,能走、能跳舞的机器人

      最近一个月基本上没有更新博客了,主要是和朋友一起在捣鼓J-Robot这个机器人,现在基本是可以控制它了,也算是一点小小的成就感吧.   先来几张图片吧. 再来一张:   是否觉得呆呆的?来,Jim ...