押されたときにカレンダーイベントを作成し、そのボタンのタイトルを「作成されたイベント」に変更するか、同じ効果を持つ 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 が作成されたり、確認としてタイトルが変更されたりすることはありません。さらに、アプリがフリーズし、タッチに反応しなくなります...つまり、ホームボタンを押してアプリを再度開くと、タイトルが変わり、AlertView がポップアップします。
マークされた場所にタイトル変更コードを配置しようとしましたが、これは機能しますが、これはもちろん if(!granted) の外にあるため、何があってもボタンが変更されます。そして、そこにコードを入れても、同じフリーズ現象が発生します。
私は本当にこれで何が起こっているのか分かりません。ここに誰か同じ問題がありましたか?