我认为正确设置 KalViewController 的委托 - 复制 Holiday 和 NativeCal 演示 - 但我一定不是因为当我单击日期单元格时出现以下错误:
-[UINavigationButton didSelectDate:]: unrecognized selector sent to instance
当我在 All Exceptions 上设置断点时,我看到它在 KalGridView.m 这个函数中引发了一个异常:
- (void)setSelectedTile:(KalTileView *)tile
{
if (selectedTile != tile) {
selectedTile.selected = NO;
selectedTile = [tile retain];
tile.selected = YES;
[delegate didSelectDate:tile.date]; // exception raised here
}
}
这是我设置委托的代码(几乎从演示代码中复制):
- (void) viewDidLoad
{
KalViewController *calendar = [[KalViewController alloc] init];
calendar.delegate = self;
[[self.view viewWithTag:1] addSubview:calendar.view];
....}
该错误是有道理的,因为我将委托设置为我自己的 ViewController,它没有实现 didSelectDate。另一方面,在 KalViewController 的委托中设置的 Holiday 和 NativeCal 类也没有,它们都是类型
NSObject <UIApplicationDelegate, UITableViewDelegate>
谢谢一堆..我不仅仅是触摸卡住了。