I have integrated Kal Calendar in my app successfully, here is the method how I show the calendar
-(void)showDepartDatePicker{
NSLog(@"showDepartDatePicker");
if(_departDatePicker != nil){
[self.navigationController pushViewController:_departDatePicker animated:YES];
}else{
_departDatePicker = [[KalViewController alloc] init];
_departDatePicker.title = @"Departure Date";
_departDatePicker.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Today" style:UIBarButtonItemStyleBordered target:self action:@selector(showAndSelectTodayDeparturePicker)];
_departDatePicker.kvcDelegate = self;
[self.navigationController pushViewController:_departDatePicker animated:YES];
}
}
I have added following in KalViewController.h,
@protocol KalViewControllerDelegate <NSObject>
@required
- (void)didSelectDate:(KalDate *)date andLoaded:(BOOL)loaded;
@end
and
@property (nonatomic, assign) id <KalViewControllerDelegate> kvcDelegate;
and implemented this delegate method in my viewController as
- (void)didSelectDate:(KalDate *)date andLoaded:(BOOL)loaded
{
NSLog(@"Title : %@",[self.navigationController.visibleViewController title]);
[self.navigationController popViewControllerAnimated:YES];
}
now, as per my question, I want to implement KalDataSource so as it show the day marked with events and selecting it show the event details in the table view available below Month's View.
Refer this link if you are new for Kal Calendar https://github.com/klazuka/Kal
Second Question, here is how I call delegate method from KalViewController.m
- (void)didSelectDate:(KalDate *)date
{
self.selectedDate = [date NSDate];
NSDate *from = [[date NSDate] cc_dateByMovingToBeginningOfDay];
NSDate *to = [[date NSDate] cc_dateByMovingToEndOfDay];
[self clearTable];
[dataSource loadItemsFromDate:from toDate:to];
[tableView reloadData];
[tableView flashScrollIndicators];
//line below calls my delegate method
[self.kvcDelegate didSelectDate:date andLoaded:_loaded];
}
What happens is, when I call showDepartDatePicker to push KalViewController to my navigation stack, it calls my delegate method 2 times(which should be called on date selection), then for every date selection calls that delegate method again(1 time).
Even I want to limit this calendar not to show past dates!
Please help me out on this.