本文简单介绍了使用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. linux tar解压命令

    linux下使用tar命令 解压语法:tar [主选项+辅选项] 文件或者目录 使用该命令时,主选项是必须要有的,它告诉tar要做什么事情,辅选项是辅助使用的,可以选用.主选项:c 创建新的档案文件. ...

  2. MySql配置文件模板

    写在开篇:        这个mysql得配置文件my.cnf,是我现在环境里常用得,包含基础配置及一些优化,本来一直在我得有道笔记里记录着,之前一直没有写博客的习惯,最近刚开始注册博客,就将这些东西 ...

  3. 浅析JS异步执行机制

    前言 JS异步执行机制具有非常重要的地位,尤其体现在回调函数和事件等方面.本文将针对JS异步执行机制进行一个简单的分析. 从一份代码讲起 下面是两个经典的JS定时执行函数,这两个函数的区别相信对JS有 ...

  4. Java常用集合学习总结

    一  数组 数组可以存储基本数据类型和对象的一种容器,长度固定,所以不适合在对象数量未知的情况下使用. Arrays : 用于操作数组对象的工具类,里面都是静态方法. Arrays.asList:把A ...

  5. Oracle导出表

    方法一:利用PL/SQL Developer工具导出: 菜单栏-->Tools-->Export Tables,如下图,设置相关参数即可: 方法二:可以用cmd的操作命令导出,详情请去百度 ...

  6. iOS开源加密相册Agony的实现(五)

    简介 虽然目前市面上有一些不错的加密相册App,但不是内置广告,就是对上传的张数有所限制.本文介绍了一个加密相册的制作过程,该加密相册将包括多密码(输入不同的密码即可访问不同的空间,可掩人耳目).Wi ...

  7. Openstack:Instance cannot ping by domain name

    Issue: When you created an instance inside Openstack, you may find that you cannot ping address by d ...

  8. shell命令执行hive脚本(hive交互,hive的shell编程)

    Hive执行方式 Hive的hql命令执行方式有三种: 1.CLI 方式直接执行 2.作为字符串通过shell调用hive –e执行(-S开启静默,去掉"OK","Tim ...

  9. Android简易实战教程--第三十一话《自定义土司》

    最近有点忙,好几天不更新博客了.今天就简单点,完成自定义土司. 主布局文件代码: <RelativeLayout xmlns:android="http://schemas.andro ...

  10. Android简易实战教程--第三十话《撕衣美女》

    此篇邪恶一些,给单身屌丝发点"福利",通过图片的绘制,给美女脱掉衣服. 原理:图片覆盖图片,通过画笔对顶端的图片做一些特效处理,即手指触摸的地方,设置为透明.即可显示最底部的美女图 ...