跨界面传值

从一个界面将一个结果值传到另一个界面,这个是我们在开发过程中非常常见的一个问题。传值本身并不是一个太复杂的问题,在此主要简述一下常用的传值方法。

我们传值常用的方法主要有四种:

  • 1.属性传值
  • 2.代理传值
  • 3.block传值
  • 4.通知传值
  • 5.KVO
  • 对象传值

属性传值:

属性传值应该来说是比较简单的一种传值方式,但是这种传值方式有其局限性,常用的一种场合是我们从界面A跳转到界面B,如何我们想讲界面A的值传到界面B,属性传值是比较方便的一种方式。如下图所示,如果我们点击A界面上的一个按钮,跳转到B界面,并且把A界面的一个值传送到B界面。

iOS-跨界面传值和跨应用传值

先说明一下大致的原理,首先要创建两个控制器A和B,在A中导入B的头文件,在A的按钮点击事件中,添加A跳转到B的代码段。现在的问题是如何在跳转的过程中把A界面上的值传到B界面呢?

我们可以给B添加一个属性,在点击按钮从A跳转到B的时候,将A界面要传送的值赋给B的属性,这样在B界面可以使用(self.属性)直接获取从A界面传过来的值。

代码段如下:(下面的代码段是一个最简单的演示)

 

1 #import <UIKit/UIKit.h>
2 
3 @interface ViewController : UIViewController
4 {
5     NSString *send;//我们在界面跳转的时候,将send的值传到下一个界面
6 }
7 - (IBAction)changeScreenButtonClick:(UIButton *)sender;
8 @end
A.h

相关文章: