代理模式简单说明
如果想从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.