0

押されたときにカレンダーイベントを作成し、そのボタンのタイトルを「作成されたイベント」に変更するか、同じ効果を持つ 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) の外にあるため、何があってもボタンが変更されます。そして、そこにコードを入れても、同じフリーズ現象が発生します。

私は本当にこれで何が起こっているのか分かりません。ここに誰か同じ問題がありましたか?

4

1 に答える 1