Mit iOS 8.0 führte Apple UIAlertController ein , um UIActionSheet zu ersetzen . Leider hat Apple keine Informationen zur Präsentation hinzugefügt. Ich habe einen Eintrag darüber in hayaGeeks Blog gefunden, aber es scheint nicht auf dem iPad zu funktionieren. Die Ansicht ist völlig fehl am Platz:
Verlegt:
Richtig:
Ich benutze den folgenden Code, um ihn auf der Oberfläche anzuzeigen:
let alert = UIAlertController()
// setting buttons
self.presentModalViewController(alert, animated: true)
Gibt es eine andere Möglichkeit, es für das iPad hinzuzufügen? Oder hat Apple das iPad einfach vergessen oder noch nicht implementiert?
ios
ipad
user-interface
uialertcontroller
Matt3o12
quelle
quelle
Auf dem iPad wird die Warnung mit dem neuen UIPopoverPresentationController als Popover angezeigt. Dazu müssen Sie einen Ankerpunkt für die Darstellung des Popovers mithilfe von sourceView und sourceRect oder barButtonItem angeben
Um den Ankerpunkt anzugeben, müssen Sie einen Verweis auf den UIPopoverPresentationController des UIAlertController erhalten und eine der folgenden Eigenschaften festlegen:
Beispielcode:
quelle
In Swift 2 möchten Sie so etwas tun, um es auf iPhone und iPad richtig anzuzeigen:
Wenn Sie den Präsentator nicht einstellen, wird auf dem iPad eine Ausnahme
-[UIPopoverPresentationController presentationTransitionWillBegin]
mit der folgenden Meldung angezeigt:quelle
Update für Swift 3.0 und höher
quelle
Update 2018
Ich hatte gerade eine App aus diesem Grund abgelehnt und eine sehr schnelle Lösung bestand darin, einfach von der Verwendung eines Aktionsblatts zu einer Warnung zu wechseln.
Hat einen Zauber gewirkt und die App Store-Tester ganz gut bestanden.
Vielleicht nicht für jeden eine passende Antwort, aber ich hoffe, dies hilft einigen von Ihnen schnell aus der Essiggurke.
quelle
Swift 4 und höher
Ich habe eine Erweiterung erstellt
Wie benutzt man:
quelle
Hier ist eine schnelle Lösung:
quelle
Swift 5
Ich habe den "Actionsheet" -Stil für das iPhone und den "Alarm" für das iPad verwendet. Das iPad wird in der Mitte des Bildschirms angezeigt. Sie müssen sourceView nicht angeben oder die Ansicht an einer beliebigen Stelle verankern.
Bearbeiten: Gemäß dem Vorschlag von ShareToD wurde die veraltete Prüfung "UI_USER_INTERFACE_IDIOM () == UIUserInterfaceIdiom.pad" aktualisiert
quelle
Für mich musste ich nur Folgendes hinzufügen:
quelle
Fügen Sie einfach den folgenden Code hinzu, bevor Sie Ihr Aktionsblatt präsentieren:
quelle