DSLCalendarView перезагрузить
Я использую DSLCalendarView
для отображения графиков. Когда месяц меняется, didChangeToVisibleMonth
вызывается. Я обновляю данные об этом событии. Но я хочу, чтобы календарь тоже перезагрузился на этом мероприятии. Можно ли обновить / перезагрузить DSLCalendarView
?
2 ответа
В DSLCalendarView.m вы добавите значение тега для двух представлений. ниже добавьте код значения тега. просто измените в файле.
- (id)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self != nil) {
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(reloadCalendar:)
name:@"reloadCalendar"
object:nil];
[self commonInit];
}
return self;}
-(void)reloadCalendar{
[self commonInit];
}
- (void)commonInit {
[[self viewWithTag:508] removeFromSuperview];
[[self viewWithTag:509] removeFromSuperview];
self.monthSelectorView.tag=508;
self.monthContainerView.tag=509;
}
- (void)didTapMonthBack:(id)sender {
NSDateComponents *newMonth = self.visibleMonth;
newMonth.month--;
[self commonInit];
[self setVisibleMonth:newMonth animated:YES]; }
- (void)didTapMonthForward:(id)sender {
NSDateComponents *newMonth = self.visibleMonth;
newMonth.month++;
[self commonInit];
[self setVisibleMonth:newMonth animated:YES];}
если после этого мы нажмем кнопку "Вперед" или "Назад" в календаре, перезагрузите календарь.
В контроллере представления просто метод вызова уведомления, если мы изменим вызов события во время вызова метода.
- (void)calendarView:(DSLCalendarView *)calendarView didChangeToVisibleMonth:(NSDateComponents *)month {
[[NSNotificationCenter defaultCenter]postNotificationName:@"reloadCalendar" object:self];
NSLog(@"Now showing %@", month);
}
Я видел, что у библиотеки нет никакого трюка, чтобы сделать это, к сожалению, нет метода перезагрузки:(. Может быть, некоторые обходные пути решают проблему в вашем случае.