页面传值:
复合传值
单例传值
userDefaults 传值
代理传值
Block/闭包传值
复合 - 正向传值
1、接收方,头文件中创建可存放传递值的属性变量
2、发送方,包含接收方的头文件
3、发送方,实例化接收方对象,并设置其属性变量的值
4、接收方,将此属性变量的值输出
Objective-C
Page2.h
Page1.m
Page2.m
Swift
Page2.swift
Page1.swift
单例 - 正/反向传值
1、创建单例类,并在其头文件中创建可存放传递值的属性变量
2、发送方,包含单例类头文件
3、发送方,创建单例类对象,并为其属性变量赋值
4、接收方,包含单例类头文件
5、接收方,创建单例类对象,取其属性变量的值,输出
创建单例类
SingleClass.h
SingleClass.m
Page3.m
Page4.m
SingleClass.swift
Page3.swift
Page4.swift
NSUserDefaults - 正/反向传值
1、发送方,创建 userDefaults,并以一个固定的 key 值存储数据,发送传递值
2、发送方,创建 userDefaults 同步数据
3、接收方,创建 userDefaults,并以相同的 key 值读取数据,接收传递值
Page5.m
Page6.m
Page5.swift
Page6.swift
代理 - 反向传值
1、创建代理协议,并在协议中创建协议方法
2、委托方:发送方,包含协议头文件
3、委托方:发送方,创建代理人属性变量
4、委托方:发送方,调用协议方法,发送传递值
5、代理方:接收方,遵守代理协议
6、代理方:接收方,实例化发送方对象,并设置其代理人为 self
7、代理方:接收方,实现代理协议中的方法,接收传递值
创建协议
PageDelegate1.h
Page8.h
Page8.m
Page7.m
PageDelegate1.swift
Page8.swift
Page7.swift
代理 - 反向传值,代理封装
4、委托方:发送方,声明重构的 init 初始化方法
5、委托方:发送方,重构 init 初始化方法
6、委托方:发送方,调用协议方法,发送传递值
7、代理方:接收方,遵守代理协议
8、代理方:接收方,用重构初始化方法实例化委托方对象,并设置其代理人为 self
9、代理方:接收方,实现代理协议中的方法,接收传递值
PageDelegate2.h
Page10.h
Page10.m
Page9.m
PageDelegate2.swift
Page10.swift
Page9.swift
代理 - 双向传值
PageDelegate3.h
Page16.h
Page16.m
Page15.m
block/闭包 - 反向传值
1、发送方:创建 block/闭包 类型的变量
2、发送方:调用 block/闭包,发送传递值
3、接收方:实例化发送方对象,并实现其 block/闭包,接收传递值
Page12.h
Page12.m
Page11.m
Page12.swift
Page11.swift
block/闭包 - 反向传值,block/闭包 封装
2、发送方:声明重构 init 初始化方法
3、发送方:重构 init 初始化方法
4、发送方:调用 block/闭包,发送传递值
5、接收方:用重构初始化方法实例化发送方对象,并实现其 block/闭包,接收传递值
Page14.h
Page14.m
Page13.m
Page14.swift
Page13.swift
block/闭包 - 双向传值
Page18.h
Page18.m
Page17.m