Gibt es einen einfachen Weg, das UIAlertView-Ergebnis ohne Delegierung zu behandeln?

8

Ich habe eine Funktion, die eine UIAlertView mit YES / NO-Tasten zeigt, und sie wird nur innerhalb des Bereichs der Funktion verwendet, so dass ich keine Delegierung implementieren möchte, um das Benutzerfeedback zu erfassen.

Gibt es eine Möglichkeit zu wissen, auf welche Schaltfläche Benutzer geklickt haben, ohne UIAlertViewDelegate zu implementieren, etwa wie folgt:

%Vor%

Oder Lambda-Ausdruck wie in Animation

    
jAckOdE 12.03.2012, 04:49
quelle

7 Antworten

23

Es gibt keine Möglichkeit, die Delegierung vollständig zu umgehen, aber Sie könnten einen entsprechenden Wrapper in diesen Zeilen erstellen:

%Vor%

(ARC wird vorausgesetzt, wenn Sie es nicht verwenden, ändern Sie delegate = nil in [delegate release] .)

Die Verwendung wäre etwa wie folgt:

%Vor%     
Arkku 12.03.2012, 05:28
quelle
3

Ich habe einen Blogbeitrag darüber geschrieben, wie (und warum) Blockrückrufe zu Warnsichten, Action-Sheets und Animationen hinzugefügt werden können:

Ссылка

Wenn Sie nur eine funktionierende Implementierung von diesem wollen, können Sie die Quelldateien von GitHub herunterladen:

Ссылка

Verwendung:

%Vor%     
Desmond 26.02.2014 13:59
quelle
1

Es ist sehr einfach. Angenommen, Sie haben eine Warnung, etwa so:

%Vor%

Sie müssen diese Methode hinzufügen:

%Vor%

Eine mögliche Implementierung dieser Methode würde folgendermaßen aussehen:

%Vor%     
JTApps 12.03.2012 04:57
quelle
0

Sie können dies mithilfe der benutzerdefinierten Ansicht tun, die ausgeblendet und zur Vermeidung von ActionSheets angezeigt werden kann

%Vor%     
Sanket Pandya 12.03.2012 05:35
quelle
0

Sie müssen die Klasse nicht ableiten. Mit Block ist es einfach, vom Benutzer ausgewählte Schaltflächenindex zu erhalten.

%Vor%     
bademi 22.02.2014 01:59
quelle
0

Danke Arkku . Hier ist die Swift-Version.

Ссылка

%Vor%     
Evgenii 18.03.2015 22:27
quelle
0

UIAlertView ist ab iOS 8.0 veraltet, eine bessere Lösung verwendet UIAlertController :

%Vor%     
idanuda 28.03.2016 12:05
quelle

Tags und Links