我正在尝试创建一个按钮,按下该按钮会创建一个日历事件,并将所述按钮的标题更改为“已创建事件”,或者可能会创建一个具有相同效果的 AlertView。到目前为止,这是我的代码:
- (IBAction)AddToCal:(id)sender {
EKEventStore *store = [[EKEventStore alloc] init];
[store requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error) {
if (!granted) {
//Code to handle not-granted
}
else {
//Code to create event
[event setCalendar:[store defaultCalendarForNewEvents]];
NSError *err;
[store saveEvent:event span:EKSpanThisEvent error:&err];
[[NSUserDefaults standardUserDefaults] setBool:true forKey:[NSString stringWithFormat:@"%@Sub", PrevDest] ];
[[NSUserDefaults standardUserDefaults] synchronize];
[AddReminder setTitle: [NSString stringWithFormat:@"Subscribed!"] forState: UIControlStateNormal];
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Event Added!"
message:@""
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
}
}];
//Where I tested different placement of the code
}
现在这会创建一个很好的事件,但它不会创建一个 AlertView 或更改标题作为确认,甚至更多,它使我的应用程序冻结并且对触摸没有响应......直到,也就是说,我按下home 按钮,然后重新打开应用程序,此时标题更改,我的 AlertView 弹出。
我已经尝试将标题更改代码放在标记的位置,这使它可以工作,但这当然是在 if(!granted) 之外,因此无论如何都会导致按钮更改。甚至将代码放在那里也会导致同样的冻结现象。
我真的不知道这是怎么回事。这里有人遇到同样的问题吗?