iOS接口回调模式

来源:互联网 发布:linux log4j日志乱码 编辑:程序博客网 时间:2024/06/05 00:11

       首先声明我是一个Android开发工程师,由于公司项目需要,我暂时转变成为了iOS开发,今天下午在做项目时,遇到的iOS接口回调,颇有些心得,分享给大家~~~

         废话不多说,直接上代码:

在AlertDatePicker.h文件中

@class AlertDatePicker;@protocol DatePickerViewDelegate <NSObject>      @required- (void)datePickerView:(AlertDatePicker *)pickerView didSelecteDate:(NSString *)string andUILabel:(NSString *)uiLabelString;@optional- (void)datePickerDidCancelSelect:(AlertDatePicker *)pickerView;@end@interface AlertDatePicker:TenementAlertView- (instancetype)initWithDelegate:(id)delegate initTitle:(NSString *)title maxDate:(NSString *)maxDate minDate:(NSString *)minDate;@end

@protocol是定义接口名称

@required在实现接口类中必须要实现的方法

@optional在实现接口类中必须要实现的方法

在AlertDatePicker.m文件中

-(void)confirmButtonPressed:(id)sender{    [super confirmButtonPressed:sender];    if ([self.delegate respondsToSelector:@selector(datePickerView:didSelecteDate:andUILabel:)]) {         NSString *dateString=[DateUtil stringFromDay:_datePicker.date];        [self.delegate datePickerView:self didSelecteDate:dateString andUILabel:dateString];    }}-(void)cancelButtonPressed:(id)sender{    [super cancelButtonPressed:sender];    if ([self.delegate respondsToSelector:@selector(datePickerDidCancelSelect:)]) {        [self.delegate datePickerDidCancelSelect:self];    }}

<span style="background-color: rgb(255, 255, 255);">首先在文件中查看接口类中有没有该方法[self.delegate respondsToSelector:@selector(datePickerView:didSelecteDate:andUILabel:)]</span>
接口被调用
[self.delegate datePickerView:self didSelecteDate:dateString andUILabel:dateString];

实现接口的类中:

@interface ContractSignedViewController ()<DatePickerViewDelegate>//绑定接口 AlertDatePicker *alertDatePicker=[[AlertDatePicker alloc]initWithDelegate:self initTitle:@"选择入住日" maxDate:[DateUtil stringFromDay:[NSDate dateWithTimeInterval:7*24*60*60 sinceDate:[DateUtil dayFromString:_enterDate.text]]] minDate:_enterDate.text];    [alertDatePicker show:YES];#pragma mark  DatePickerViewDelegate  实现接口-(void)datePickerView:(AlertDatePicker *)pickerView didSelecteDate:(NSString *)string andUILabel:(NSString *)uiLabelString{    NSLog(@"%@,%@",string,uiLabelString);}-(void)datePickerDidCancelSelect:(AlertDatePicker *)pickerView{    //点击“取消“暂时不做处理}


分享的比较粗糙,还在慢慢学习~~~


0 0
原创粉丝点击