在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
protocol应用两个controller之间或者controller与自定义UIView之间的相互调用。 它的应用类似java或者C#里的interface。假设A调用B,B回调A,那么就可以如此设计: 首先:定义一个protocal: @protocol PtlChart @optional -(void) callBack:(id)arg; @required -(void) loadData; @end
第二步:在B里定义protocal的delegate:
代码
//B.h
@interface B : UIView { id<PtlChart> _delegate; } @property (nonatomic,retain) id<PtlChart> delegate; @end //B.m: #import "B.h" @implementation B @synthesize delegate = _delegate; - (void)dealloc { [_delegate release]; } @end
第三步:在A里调用B时,把delegate传递过去:
代码
//A.h:
@interface A : UIViewController<PtlChart> @end //A.m: #import "A.h" @implementation A - (void) loadData { A *a = [[A alloc] init]; [a setDelegate:self]; //<<--------- here [self.view addSubview:a]; [a release]; } -(void) callBack:(id)arg{ int i = (int)arg; NSLog(@"callback= %d",i); } @end
|
请发表评论