0

我认为正确设置 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>

谢谢一堆..我不仅仅是触摸卡住了。

4

1 回答 1

0

这是少数应该保留委托的情况之一,因为它正在被释放和替换。覆盖-setDelegate:并保留您的委托。

于 2012-08-21T00:14:51.397 回答