我在我的應用程序集成卡爾日曆成功,這裏是我的方法如何表現日曆KAL日曆,如何實現KalDataSource,以便我可以顯示iOS內置日曆應用程序中的事件?
-(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];
}
}
我已經加入KalViewController.h以下,
@protocol KalViewControllerDelegate <NSObject>
@required
- (void)didSelectDate:(KalDate *)date andLoaded:(BOOL)loaded;
@end
和
@property (nonatomic, assign) id <KalViewControllerDelegate> kvcDelegate;
並在我的viewController中實現了這個委託方法,如
- (void)didSelectDate:(KalDate *)date andLoaded:(BOOL)loaded
{
NSLog(@"Title : %@",[self.navigationController.visibleViewController title]);
[self.navigationController popViewControllerAnimated:YES];
}
現在,根據我的問題,我想要實現KalDataSource,以便顯示標記事件的日期並選擇它在月視圖下方的表視圖中顯示事件詳細信息。
如果你是新的卡爾日曆https://github.com/klazuka/Kal
第二個問題,請參考此鏈接,這裏是我如何調用從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];
}
會發生什麼事,當我打電話showDepartDatePicker推KalViewController到我的導航堆棧,它調用我的委託方法2次(這應該在日期選擇上調用),然後爲每個日期選擇再次調用委託方法(1次)。
即使我想限制此日曆不顯示過去的日期! 請幫我解決這個問題。