uI基础--(5)中间传值、正向传值、反向传值(代理)

一、中间传值

全局变量

1.存放中间值(放在Delegate--比较麻烦)

@property(nonatomic,strong) NSString *labelText;

2.保存值(放在应用程序对象里面)

YYAppDelegate *appDelegate = [UIApplication sharedApplication].delegate;

    appDelegate.labelText = label.text;

3.取数据

YYAppDelegate *appDelegate = [UIApplication sharedApplication].delegate;

    label.text =appDelegate.labelText;

 

 

二、正向传值 

A — >B

局部变量

1.在B中设置一个属性保存值labelText

@property(nonatomic,strong) NSString *labelText;

2.保存值(在VA跳转到VB前)

YYGreenViewController *green = [[YYGreenViewController alloc]init];

    green.labelText = label.text;  

3.取数据,并设置

    label.text =self.labelText;

 

 

三、反向传值

 协议:代理(反向传值)

A <— B

1.创建协议代理(.h),并且声明方法(要做什么事,带参传值—就是你要传的值),

2.在B中的.h设置代理属性

@property(nonatomic,weak)id<协议名>delegate;

并在界面跳转前—————存值(.m)

[self.delegate 方法名: 要保存的东西]; 

3.A的(.h)遵守协议 

4.在(.m)获得代理,

YYGreenViewController *B = [[YYGreenViewController alloc]init];

  B.delegate = self;

5.拿到值实现协议的方法(A中)

 

posted @ 2015-03-04 13:20  timo1234  阅读(367)  评论(0编辑  收藏  举报