本文简单介绍了使用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. TP中的AJAX返回ajaxReturn()

    系统支持任何的AJAX类库,Action类提供了ajaxReturn方法用于AJAX调用后返回数据给客户端.并且支持JSON.XML和EVAL三种方式给客户端接受数据,通过配置DEFAULT_AJAX ...

  2. CSS 常用的命名规则

    (1)页面结构 容器: container 页头:header 内容:content/container 页面主体:main 页尾:footer 导航:nav 侧栏:sidebar 栏目:column ...

  3. DotnetSpider (二) Downloader的设置 Request自定义数据字典

    本篇主要分享自定义Downloader和Request信息,实现自定义请求内容,及将自定义内容存储. ** 温馨提示:如需转载本文,请注明内容出处.**     本文连接:http://www.cnb ...

  4. Dynamics CRM 构建IN查询

    CRM中有3种查询数据的方式,分别是QueryExpression.fetchxml.linq,本篇讲述的条件IN的查询只支持前两种,linq并不支持. QueryExpression的写法如下,示例 ...

  5. Docker学习笔记1:CentOS7 下安装Docker

    本文内容摘自官网:https://docs.docker.com/engine/installation/linux/centos/#/create-a-docker-group 注:本文是介绍Lin ...

  6. HA机制下的Hadoop配置

    [版权申明:本文系作者原创,转载请注明出处] 文章出处:http://www.cnblogs.com/sdksdk0/p/5585355.html 作者: 朱培    ID:sdksdk0 ----- ...

  7. Android N(7.0) 被美翻的新特性!

    Tamic 专注移动开发!更多文章请关注 Csdn: http://blog.csdn.net/sk719887916/article/details/52612444 $ http://www.ji ...

  8. java基础知识——网络编程、IO流

    IO流 字节流:处理字节数据的流对象,计算机中最小数据单元就是字节.InputStream OutputStream 字符流:字符编码问题,将字节流和编码表封装成对象就是字符流.Reader Writ ...

  9. 剑指Offer——腾讯+360+搜狗校招笔试题+知识点总结

    剑指Offer--腾讯+360+搜狗校招笔试题+知识点总结 9.11晚7:00,腾讯笔试.选择题与编程.设计题单独计时. 栈是不是顺序存储的线性结构啊? 首先弄明白两个概念:存储结构和逻辑结构. 数据 ...

  10. 01_学习java WEB涉及到的相关技术

     http协议 Tomcat服务器 Servlet技术 JSP技术 HTML CSS Javascript JDBC技术 MySQL.Oracle SQL语言 JavaBean 常用开源组件 DO ...