ios协议简单示例

来源:互联网 发布:jquery.select.js api 编辑:程序博客网 时间:2024/06/05 17:56

当一个  AView  里面包含了  BView  ,BView  需要修改 AView  界面,那么这个时候就需要用到委托了,需要几个步骤:  
1.首先定一个协议;  
2. AView  实现协议中的方法;  
3. BView设置一个委托变量;  
4.把 BView  的委托变量设置成 Aview,意思就是 ,B 
View  委托 AView  办事情;  
5.事件发生后,用委托变量调用 AView  中的协议方法。
 

BView.h

#import <Foundation/Foundation.h>


@protocol UIBViewDelegate <NSObject>

// optional修饰符:调用者可选择实现  required修饰符:调用者必须实现

@optional

-(void) doSomething: (NSInteger) pay;


@end


@interface BView : NSObject

@property (nonatomic,assign)id<UIBViewDelegate> delegate;

-(void) dolWant : (NSInteger) pay;

@end


BView.m

#import "BView.h"


@implementation BView

-(void) dolWant : (NSInteger) pay

{

    [self.delegatedoSomething:100];

}

@end


Aview.h

#import <Foundation/Foundation.h>

#import "BView.h"

@interface AView :NSObject<UIBViewDelegate>


@end


AView.m

@implementation AView 

-(void) doSomething: (NSInteger) val

{

    NSLog(@"printf %ld",val);

}

@end


Main.m

AView *viewa = [[AView alloc] init];

BView *viewb = [[BView alloc] init];

viewb.delegate = viewa;//建立联系

[viewb doIWant:100]; 


0 0
原创粉丝点击