IOS 页面间传值(属性传值、block传值、代理传值、单例传值、NSNotificaion传值)
2016-06-01 16:40
483 查看
前言
iOS页面间跳转,通常涉及到传值问题。正向传值很简单,反向传值可能就有点小麻烦了。本文主要说的是页面间反向传值。
正文
正向传值的话,通过属性传值来实现,就是A页面push到B页面,在B页面上有一textField用于显示A页面传过来的值。反向传值的话,主要就是A页面push到B页面,然后返回到A页面的时候,改变A页面的背景颜色。
(一).属性传值(一般只能用于正向传值)
太简单了,就不说 了。
(二).block传值
1.首先在B页面.h文件添加执行的block,然后声明一个变量,如下图:
2. 其次在A页面有如下代码:
3.最后我们在B页面任意调用block变量,像这样:
(三).代理传值
1.首先在B页面定义代理方法,如下:
2.其次给代理赋值,要判断代理存不存在并且代理方法可不可以响应(具体赋值时再调用),如下我是在viewWillDisAppear中赋值的:
3.然后在A页面要遵守B页面的协议:
4.最后在A页面为B指定代理,并实现代理方法,如下图:
(四).单例传值
单例,在这里扮演一个第三方容器的角色。将B页面的值放到这个容器里面,然后再在A页面进行读取。逻辑上就是这样,很简单。
1.定义一个单例类,增加一个类方法。定义一个属性(表示要传输的值):
2.在B页面设置要传输的值:
3.在A页面获取B页面传输过来的值,此时push出去的界面返回的时候viewDidLoad 方法不在调用,所以我们放在viewWillAppear里面来获取B页面传来的值。
(五).通知传值
1.在A页面添加observer (什么时候需要就什么时候添加):
2.添加回调方法:
3.在B页面发送通知:
4.移除observer:
iOS页面间跳转,通常涉及到传值问题。正向传值很简单,反向传值可能就有点小麻烦了。本文主要说的是页面间反向传值。
正文
正向传值的话,通过属性传值来实现,就是A页面push到B页面,在B页面上有一textField用于显示A页面传过来的值。反向传值的话,主要就是A页面push到B页面,然后返回到A页面的时候,改变A页面的背景颜色。
(一).属性传值(一般只能用于正向传值)
太简单了,就不说 了。
(二).block传值
1.首先在B页面.h文件添加执行的block,然后声明一个变量,如下图:
2. 其次在A页面有如下代码:
3.最后我们在B页面任意调用block变量,像这样:
(三).代理传值
1.首先在B页面定义代理方法,如下:
2.其次给代理赋值,要判断代理存不存在并且代理方法可不可以响应(具体赋值时再调用),如下我是在viewWillDisAppear中赋值的:
3.然后在A页面要遵守B页面的协议:
4.最后在A页面为B指定代理,并实现代理方法,如下图:
(四).单例传值
单例,在这里扮演一个第三方容器的角色。将B页面的值放到这个容器里面,然后再在A页面进行读取。逻辑上就是这样,很简单。
1.定义一个单例类,增加一个类方法。定义一个属性(表示要传输的值):
2.在B页面设置要传输的值:
3.在A页面获取B页面传输过来的值,此时push出去的界面返回的时候viewDidLoad 方法不在调用,所以我们放在viewWillAppear里面来获取B页面传来的值。
(五).通知传值
1.在A页面添加observer (什么时候需要就什么时候添加):
2.添加回调方法:
3.在B页面发送通知:
4.移除observer:
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- jQuery使用模式窗口实现在主页面和子页面中互相传值的方法
- asp.net Context.Handler 页面间传值方法第1/2页
- ASP.NET 页面之间传递值方式优缺点比较
- asp.net页面传值测试实例代码(前后台)
- asp.net 页面传值的几个方法
- 讲解iOS开发中基本的定位功能实现
- iOS中定位当前位置坐标及转换为火星坐标的方法
- js判断客户端是iOS还是Android等移动终端的方法
- iOS应用开发中AFNetworking库的常用HTTP操作方法小结
- iOS应用中UISearchDisplayController搜索效果的用法
- IOS开发环境windows化攻略
- iOS应用中UITableView左滑自定义选项及批量删除的实现
- iOS中UIAlertView警告框组件的使用教程