委托,就是把自己要做的事情委托给别人来做,委托在ios里面用的非常之多,给人最直观的感觉就是,我提供好一个模板给你们,然后你们按照模板来填充内容。
当一个A view 里面包含了B view
b view需要修改a view界面,那么这个时候就需要用到委托了。
需要几个步骤
1。首先定一个协议
2。a view实现协议中的方法
3。b view设置一个委托变量
4。把b view的委托变量设置成a view,意思就是 ,b view委托a view办事情。
5。事件发生后,用委托变量调用a view中的协议方法
现在通过自定义一个uitableviewcell来实现委托
@protocol MyDelegate -(void)buyIphone:(NSString *)iphoneType money:(NSString *)money; @end
@interface My : NSObject { id<MyDelegate> deleage; } @property(assign,nonatomic)id<MyDelegate> delegate; @end
代码中声明了一个协议 名叫Mydelegate,在其中有一个buyIphone方法,即一个委托项。当我要购买手机的时候只需要通过delegate 调用 BuyIphone方法即可.
如下:
-(void)willbuy { [delegate buyIphone:@"iphone 4s" money:@"4888"]; }
例如:商人类实现了这一委托(用<Mydelegate>表示实现)
#import <Foundation/Foundation.h> #import "My.h" @interface Business : NSObject<MyDelegate> @end
然后在 @implementation Business 中调用 buyIphone方法
#import "Business.h" @implementation Business -(void)buyIphone:(NSString *)iphoneType money:(NSString *)money { NSLog(@"手机有货,这个价钱卖你了,发货中!!"); } @end
总结:委托就是给一个模板出来,至于里面的内容,不同使用它的人可能会有不同的填充方式,基本上整个项目大部分都是由委托搭建出来的模板 。