有人可以概述这条线的确切含义吗?
[self.delegate calendar:self didSelectDate:self.selectedDate];
此行主要用于在另一个类的标签dateLabel上设置日期。
CKCalendarView *calendar = [[CKCalendarView alloc] initWithStartDay:startMonday];
calendar.delegate = self;
self.dateFormatter = [[NSDateFormatter alloc] init];
[self.dateFormatter setDateFormat:@"dd/MM/yyyy"];
calendar.selectedDate = [self.dateFormatter dateFromString:@"18/11/2012"];
calendar.minimumDate = [self.dateFormatter dateFromString:@"09/11/2012"];
calendar.maximumDate = [self.dateFormatter dateFromString:@"29/11/2012"];
calendar.frame = CGRectMake(10, 10, 300, 320);
[self.view addSubview:calendar];
self.dateLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, CGRectGetMaxY(calendar.frame) + 4, self.view.bounds.size.width, 24)];
[self.view addSubview:self.dateLabel];
关于上述内容所做的“联系”详细说明会有很大帮助。
答案 0 :(得分:2)
简单地说,你的日历有一个CKCalendar
对象的实例,一个看起来是UIView
类之一的子类的视图(我假设,因为我们无法告诉,因为您没有包含.h文件或您正在使用的.m文件中的完整代码)。
来自UIView的大多数类需要委托来处理用户界面中的行为并由其生成。 (有关代表所做事情的详细说明,请参阅How does a delegate work in objective-C?)。请注意,您在实例化calendar
后立即明确设置了委托:
calendar.delegate = self
所以使用那一行,你使这个类都显示和委托,所以你的类需要实现协议所需的任何方法(其中一个看起来是
-(void)calendar:didSelectDate:
。)
您引用的代码行(基本上)“使用委托中找到的-(void)calendar:didSelectDate:
方法并传递自身,selectedDate
作为该方法的参数/参数。”。
我已将该行写成:
[[self delegate] calendar:self didSelectDate:[self selectedDate]];
希望有所帮助。