KalViewControllerのデリゲートを正しく設定すると思います-HolidayとNativeCalの両方のデモをコピーします-しかし、日付セルをクリックすると次のエラーが発生するため、そうしてはいけません。
-[UINavigationButton didSelectDate:]: unrecognized selector sent to instance
すべての例外にブレークポイントを設定すると、次の関数の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];
....}
didSelectDateを実装していない独自のViewControllerにデリゲートを設定しているため、エラーは理にかなっています。一方、KalViewControllerのデリゲートで設定されているHolidayクラスとNativeCalクラスは、どちらもタイプが異なります。
NSObject <UIApplicationDelegate, UITableViewDelegate>
山に感謝します..私はちょっと立ち往生しているだけではありません。