iphone中常用@protocol和delegate的机制来实现接口的功能
例如想在A的功能要在B中实现,可以在A中定义一个Protocol,按照Cocoa的习惯,一般它以delegate结尾,熟悉C#的同学应该知道它的意义。其实不论是接口,委托,还是回调函数,本质上都做了一件事情。就是定义了一个操作契约,然后由用户自己来实现它的具体内容
@protocol AViewControllerDelegate
- (void)func1
- (int)func2:(int)arg
@end
然后要在A中声明一个delegate:
@property (weak, nonatomic) id<AViewControllerDelegate> delegate1;(也可以声明为其它名字)
然后让B遵循Adelegage的协议
@interface BViewController : UIViewController <AViewControllerDelegate>
在B中实现func1 和func2。
并且要在B中AViewController.delegate1 = self 。
之后在A中调用[delegate1 func1] [delegate1 func2]即可!
可参考: http://wsqwsq000.iteye.com/blog/1121155