Swift实现传值的四种方法
来源:互联网 发布:恶意百度点击软件 编辑:程序博客网 时间:2024/06/05 17:59
常用的四种传值方法:单例,代理,闭包,通知(二)
3.闭包
1>在a页的视图控制器中声明一个闭包
//声明闭包
var closure:((UIColor)->())?
2>在b页的视图控制器中创建闭包方法,并调用
func clickBtn(){
let tmpViewCtrl =TmpViewController()
print(tmpViewCtrl)
//创建闭包方法
tmpViewCtrl.closure = {
(backgroundColor:UIColor)->()in
self.view.backgroundColor = backgroundColor
}
self.presentViewController(tmpViewCtrl, animated:true, completion: nil)
}
3>创建闭包实例在b页的视图控制器中:
func changeRed(){
self.closure!(UIColor.redColor())
self.dismissViewControllerAnimated(true, completion: nil)
}
4.通知
1>在a页面中,创建观察者属性以及收到通知后的响应notiAction
//定义观察者属性
NSNotificationCenter.defaultCenter().addObserver(self, selector: "notiAction:", name:"changeBackgroundColor", object:nil)
//响应方法,传入初值
func notiAction(n:NSNotification){
let dic = n.userInfoas! [String:NSObject]
let bgColor = dic["backgroundColor"]as!UIColor
self.view.backgroundColor = bgColor
}
2>在b页面设置通知属性,发送发通知
func changeRed(){
//发送通知并传入数值
NSNotificationCenter.defaultCenter().postNotificationName("changeBackgroundColor", object: nil, userInfo: ["backgroundColor":UIColor.redColor()])
self.dismissViewControllerAnimated(true, completion: nil)
}
END
- Swift实现传值的四种方法
- Swift实现传值的四种方法
- swift实现单例的四种方式
- swift中单例的实现方法
- Swift中单例的实现方法
- 四种实现下载功能的方法
- SWAP方法的四种实现方式
- python实现的四种抽样方法
- Swift-总结单例实现的几种方法
- Swift 3.0 延迟加载的几种实现方法
- swift代理传值的实现
- Swift - 动画效果的实现方法总结
- swift方法实现字符串的大小写转换
- Swift的基本知识(四)
- [Swift]Swift的初始化方法
- windows线程同步的总结-------四种实现的方法
- 实现字符串反转的四种方法(C#)
- 四种实现CSS隔行换色的方法
- android 16进制颜色值字符串转int值
- 函数
- 【GOF23设计模式】_观察者模式_广播机制_消息订阅_网络游戏对战原理_自带类与接口JAVA251-252
- 2016年7月2日学习3 流式布局container
- Gauss Fibonacci
- Swift实现传值的四种方法
- Myeclipse2014安装反编译插件
- 整理SetupDixxx函数
- poj之旅——3368
- AngularJS 表格操作
- 解决jsp页面请求action后中文乱码的问题
- 原生对象
- JavaScript Date
- 天才小毒妃 > 第920章 被金执事威胁