566 Stimmen

Wie erstelle ich ein UIAlertView in Swift?

Ich habe daran gearbeitet, ein UIAlertView in Swift zu erstellen, aber aus irgendeinem Grund gelingt es mir nicht, die Anweisung richtig zu machen, weil ich diesen Fehler bekomme:

Konnte keine Überladung für 'init' finden, die die mitgelieferten Argumente akzeptiert

So habe ich es geschrieben:

let button2Alert: UIAlertView = UIAlertView(title: "Titel", message: "Nachricht",
                     delegate: self, cancelButtonTitle: "OK", otherButtonTitles: nil)

Dann rufe ich es so auf:

button2Alert.show()

Im Moment stürzt es ab und ich scheine einfach nicht die Syntax richtig hinzubekommen.

4voto

midhun p Punkte 1541

Sie können diese einfache Erweiterung mit n Anzahl von Schaltflächen und zugehörigen Aktionen swift4 und höher verwenden

extension UIViewController {
    func popupAlert(title: String?, message: String?, actionTitles:[String?], actions:[((UIAlertAction) -> Void)?]) {
        let alert = UIAlertController(title: title, message: message, preferredStyle: .alert)
        for (index, title) in actionTitles.enumerated() {
            let action = UIAlertAction(title: title, style: .default, handler: actions[index])
            alert.addAction(action)
        }
        self.present(alert, animated: true, completion: nil)
    }
}

Sie können es wie folgt verwenden,

self.popupAlert(title: "Message", message: "Ihre Nachricht", actionTitles: ["erste", "zweite", "dritte"], actions:[
            {action1 in
                // Aktion für Klick auf erste Schaltfläche
            },
            {action2 in
                // Aktion für Klick auf zweite Schaltfläche
            },
            {action3 in
                // Aktion für Klick auf dritte Schaltfläche
            }, nil])

3voto

Shaba Aafreen Punkte 1447

Verwenden Sie diesen Code, um einen Alertview anzuzeigen

  let alertController = UIAlertController(title: "Hallo Coders", message: "Ihre Alert-Nachricht", preferredStyle: .Alert)
        let defaultAction = UIAlertAction(title: "Alarm schließen", style: .Default, handler: nil)
        alertController.addAction(defaultAction)

        presentViewController(alertController, animated: true, completion: nil)

Referenz: Swift Alert anzeigen mit UIAlertController

3voto

luhuiya Punkte 2005

In xcode 9

let alert = UIAlertController(title: "Alert", message: "Nachricht", preferredStyle: UIAlertControllerStyle.alert)
alert.addAction(UIAlertAction(title: "Ok", style: UIAlertActionStyle.default, handler: nil))
self.present(alert, animated: true, completion: nil)

3voto

Oscar Wu Punkte 31

Der Grund, warum es nicht funktioniert, liegt darin, dass der Wert, den Sie an die Funktion übergeben haben, nicht korrekt ist. Swift mag kein Objective-C, Sie können nil an Argumente übergeben, die Klassentyp sind, ohne Einschränkungen (vielleicht). Das Argument otherButtonTitles ist als Nicht-Optional definiert, dessen Typ kein (?) am Ende hat. Sie müssen also einen konkreten Wert dafür übergeben.

3voto

gskril Punkte 81
@IBAction func Alert(sender: UIButton) {

    var alertView:UIAlertView = UIAlertView()
    alertView.title = "Warnung!"
    alertView.message = "Nachricht"
    alertView.delegate = self
    alertView.addButtonWithTitle("OK")

    alertView.show()

}

Versuch es so

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X