iOS五种页面传值方式

方式一:属性传值

A页面的值跳转到B页面之后把值传给B页面,只需要在.h文件定义属性,A页面再跳转之前赋值给B页面的实例对象属性即可。

A页面(FirstViewController)部分代码:

在FirstViewController.m的button点击跳转方法中

B页面为TextFieldViewController,inputTextF就是B页面的属性。是不是很简单?这种传值方式一般用于正向传值给跳转界面。

方式二:代理传值

首先在跳转界面B.h文件定义代理协议方法:

在B.m中页面消失方法中实现委托:

在A.m中遵守协议,实现协议方法,即传递了B页面的背景色给A页面:

协议方法:

代理方法多用于反向传值,即跳转界面传值返回给上个界面。

方法三:通知传值

谁要监听值的变化,谁就注册通知。

A页面要监听B页面textfield的值的变化,那么他就在初始化方法里注册通知:

当B页面的textfield的值发生变化时A页面就会执行change方法:

在B页面消失方法中推送一个通知,相当于定义一个标识把值传给该标识通知的注册者:

通知传值是一对多的关系,一般用于跳转界面传值给上一界面。

方式四:单例传值

新建一个继承NSObject的类:

在.h文件里声明一个属性和一个类方法:

在.m文件实现类方法,初始化:

在B页面消失方法里:

在A页面即将出现方法里:

单例方法其实就是一个只会初始化一次,然后给他赋值共享的一个单例,该方法适合正向和反向传值,但是不要滥用。

方式五:block传值

B页面传值给上一页面A:

在B页面定义一个block:

定义声明一个方法(方便系统识别,提高开发效率):

B页面消失方法里:


在A页面跳转按钮方法里:

block其实是异步的高级传值方式,适用于传值给上一页面。

博主的微博、CocoaChina博客、CSDN博客同步更新,欢迎关注:

新浪微博:http://weibo.com/p/1005052308506177/home?from=page_100505_profile&wvr=6&mod=data&is_all=1#place

CocoaChina:http://blog.cocoachina.com/477998

CSDN:http://blog.csdn.net/czkyes







推荐阅读更多精彩内容

  • 在说页面传值之前先记录一下比较有意思的跳转:业务场景:现有一个页面跳转顺序为:A-B-C-D,今需要在C push...
    SuAdrenine阅读 229评论 0 0
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 122,626评论 15 534
  • 跨界面传值 从一个界面将一个结果值传到另一个界面,这个是我们在开发过程中非常常见的一个问题。传值本身并不是一个太复...
    rayChow阅读 258评论 1 1
  • 今天是中国传统节气,立秋。非常熟知的一个节气,小时候家里农忙必须赶在立秋之前把水稻种下去,想想那时真是太苦了...
    黄灿辉的简书阅读 47评论 1 1
  • 文/白茶心 “我们分手吧。”梨儿说这话的时候,还是低着头,一副安静的淡淡的样子。 “分手?你开什么玩笑,我不同意。...
    白茶心阅读 151评论 13 13