代理模式简单说明

如果想从B界面传值给A界面,不包含从B界面push到A界面,简单思路如下:

1.在要传值的界面建立代理,在这里,B需要传值,在B中建立协议:

B.h

@protocol passValue <NSObject>

- (void)setPassValue:(NSString *)str;

@end

2.在B界面设置一个代理属性:

@property (nonatomic,assign) id<passValue> delegate;

3.在需要传值的地方,比如点击事件中:

[self.delegate setPassValue:@"you are win"];

4.A界面接收数据,首先添加B的类和协议

A.h

#import "B.h"

@interface ViewController :UIViewController<passValue>

@end

5.设置代理:

A.m

ViewController1 *view = [[ViewController1 alloc]init];
view.delegate = self;

6.实现代理方法,接收数据:

A.m

-(void)setPassValue:(NSString *)str{
    NSLog(@"%@",str);
}

OK.