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];
完成!!!!!!!!!!!!!