Ich habe eine iOS App mit einem UIAlertController in Form eines Aktionsblatts, das in meiner App angezeigt wird, wenn der Benutzer auf eine Schaltfläche klickt.UIAlertAction Abschlussblock nicht aufgerufen - iOS
Alles funktioniert gut, abgesehen von einer Sache, die Completion-Blöcke werden nicht aus irgendeinem Grund aufgerufen.
Hier ist mein Code:
// Setup the alert information/type.
UIAlertController *action_view = [UIAlertController alertControllerWithTitle:@"Test title" message:@"test message" preferredStyle:UIAlertControllerStyleActionSheet];
// Create and add the cancel button.
UIAlertAction *cancel = [UIAlertAction actionWithTitle:@"Dismiss" style:UIAlertActionStyleCancel handler:^(UIAlertAction * action) {
[action_view dismissViewControllerAnimated:YES completion:^{
NSLog(@"asdhfgjk");
}];
}];
// Add the action button to the alert.
[action_view addAction:cancel];
// Present the alert to the user.
[self presentViewController:action_view animated:YES completion:nil];
Wenn Sie diesen Code ausführen erhalten Sie die Linie sehen, die die Steuerung wird nicht ausgeführt und weder wird die NSLog
Anweisung innerhalb sie entlässt. Wenn Sie jedoch die NSLog
löschen und den Completion-Block auf Null setzen, dann läuft es .... warum ???
Danke für Ihre Zeit, Dan.
Warum die down vote? Wenn etwas mit der Antwort nicht stimmt, erkläre zumindest, was das Problem ist. – rmaddy
Ich weiß nicht, wer dich gewählt hat, aber ich stimme deine Antwort ab und ticke sie, weil sie mein Problem perfekt gelöst hat, danke. Wenn ich darüber nachdenke, weiß ich nicht, warum ich den Eindruck hatte, dass ich den Alarm-Controller sowieso entlassen muss. – Supertecnoboff
Upvoted weil es mir geholfen hat und weil ich auch vorher ohne Angabe von Gründen abgesagt wurde. SO sollte einen Grund benötigen, auf einem Downvote gegeben zu werden. – Alyoshak