This worked for me: from what I can see, you can differentiate based on the value of [TKCalendarMonthView dateSelected], because it's NULL when you tap on the left and right arrows.
So your delegate ends up looking like this:
- (void)calendarMonthView:(TKCalendarMonthView *)monthView didSelectDate:(NSDate *)d {
[self handleDateSelection:d];
}
- (void)calendarMonthView:(TKCalendarMonthView *)monthView monthDidChange:(NSDate *)d {
if ( [monthView dateSelected] == NULL ) {
NSLog(@"No date selected, genuine month change");
return;
}
[self handleDateSelection:d];
}
-(void) handleDateSelection:(NSDate *)date {
// do something here
}