Protocol协议
1.协议声明了可以被任意类实现的方法
2.协议不是类,它是定义了一个其对象可以实现的一个接口
3.如果其它类实现了协议的某一个方法,就是那个类实现了这个协议
4.协议常常用来实现委托对象
5.委托就是调用自己定义的方法,别的类来实现
实现例子:
从A页面点击按钮进入B页面,在B页面点击返回按钮,获取一个值,将值传回到A页面。
(1)定义一个协议:(随便在那里都可以定义)
@protocol GlassesDelegate <NSObject>
-(void) comeBack:(NSString *)str;
@end;
(2).在第二个页面的.h文件中
@property (nonatomic,retain) id<GlassesDelegate> gDelegate;
(3).第一个页面.m文件
实现GlassesDelegate
实现它的方法:
-(void) comeBack:(NSString *)str{
nslog(@" 返回的是:%@",str);
}
(4).在第一个页面.m文件 点击按钮事件中
SecondViewController *secondVC =[ [SecondViewController alloc] init];
secondVC.gDelegate = self;
[self.navigatIonController pushViewController:secondVC animated:Yes];
(5).在第二个页面.m 文件 点击返回按钮事件中
if ( self.gDelegate && [self.gDelegate respondsToSelectot:@selector(comeBack:)]){
[self.gDelegate comeBack:@"我是返回值"];
}
[self.navigationController popViewControllerAnimated:Yes];
完成!!!!!!!!!!!!!