#ios #objective-c #iphone #ekeventkit
#iOS #objective-c #iPhone #ekeventkit
Вопрос:
Я пытаюсь открыть календарь с определенным событием, я добавил события программно, и все идентификаторы этих событий являются постоянными.
Вот как я добавляю событие
-(IBAction)addEvent:(id)sender{
EKEventStore *store = [[EKEventStore alloc]init];
[store requestAccessToEntityType:EKEntityTypeReminder completion:^(BOOL granted, NSError *error) {
if (!granted) { return; }
EKEvent *event = [EKEvent eventWithEventStore:store];
event.title = @"Demo Title";
NSDateComponents *comps=[[NSDateComponents alloc]init];
[comps setDay:4];
[comps setMonth:10];
[comps setYear:2016];
[comps setHour:12];
[comps setMinute:1];
NSDate *date=[[[NSCalendar alloc]initWithCalendarIdentifier:NSCalendarIdentifierGregorian] dateFromComponents:comps];
_date=date;
event.startDate = date;
event.endDate=date;
event.notes=@"This is event description";
EKAlarm *alarm=[EKAlarm alarmWithAbsoluteDate:date];
[event addAlarm:alarm];
event.calendar = [store defaultCalendarForNewEvents];
NSError *err=nil;
[store saveEvent:event span:EKSpanThisEvent commit:YES error:amp;err];
}];
}
Событие успешно добавлено, и я также могу открыть приложение «Календарь», но дело в том, что я не могу перемещаться по деталям события в календаре
вот как я открываю календарь
-(IBAction)openCalender:(id)sender{
NSInteger interval = [_date timeIntervalSinceReferenceDate];
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"calshow:%ld?eventid=%@", (long)interval,_eventID]];
NSLog(@"%@",url);
[[UIApplication sharedApplication] openURL:url];
}
То, что я хочу, показано на скриншоте ниже
есть идеи?
Комментарии:
1. удалось заставить это работать?
2. Нет @AhmedW я не
Ответ №1:
Чтобы ответить на мой собственный вопрос, это невозможно ни с одним из общедоступных API
Я искал более года, но это невозможно ни с одним общедоступным API, но я предполагаю, что для этого может быть какой-то частный API (и, вероятно, это приведет к отклонению нашего приложения).).
Виджет приложения «Календарь» делает то же самое, что и я, но API Apple не позволяет нам его использовать. lol
Ответ №2:
Я действительно не думаю, что есть способ сделать это. Даже при создании нового события календаря из почтового приложения по умолчанию открывается представление дня календаря. Если бы эта функциональность была возможна, я уверен, что они, по крайней мере, реализовали бы ее в почтовом приложении по умолчанию.