it-swarm.com.de

So implementieren Sie ein Popup-Dialogfeld in iOS

Nach einer Berechnung möchte ich ein Popup- oder Warnfeld anzeigen, das dem Benutzer eine Nachricht übermittelt. Weiß jemand, wo ich weitere Informationen dazu finden kann?

294
Namratha

Ja, ein UIAlertView ist wahrscheinlich das, wonach Sie suchen. Hier ist ein Beispiel:

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"No network connection" 
                                                message:@"You must be connected to the internet to use this app." 
                                               delegate:nil 
                                      cancelButtonTitle:@"OK"
                                      otherButtonTitles:nil];
[alert show];
[alert release];

Wenn Sie etwas Besonderes tun möchten, z. B. eine benutzerdefinierte Benutzeroberfläche in Ihrem UIAlertView anzeigen, können Sie UIAlertView in Unterklassen unterteilen und benutzerdefinierte Benutzeroberflächenkomponenten in die init -Methode einfügen. Wenn Sie auf einen Tastendruck antworten möchten, nachdem ein UIAlertView angezeigt wird, können Sie das delegate oben festlegen und die - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex -Methode implementieren.

Vielleicht möchten Sie sich auch das UIActionSheet ansehen.

516
donkim

Verschiedene Leute, die zu dieser Frage kommen, meinen mit einem Popup-Fenster verschiedene Dinge. Ich empfehle dringend, die Temporäre Ansichten Dokumentation zu lesen. Meine Antwort ist größtenteils eine Zusammenfassung dieser und anderer verwandter Dokumentationen.

Alarm (zeige mir ein Beispiel)

enter image description here

Warnungen Zeigt einen Titel und eine optionale Nachricht an. Der Benutzer muss dies bestätigen (eine Ein-Knopf-Warnung) oder eine einfache Auswahl treffen (eine Zwei-Knopf-Warnung), bevor er fortfährt. Sie erstellen eine Warnung mit einem UIAlertController .

Es lohnt sich, die Warnung und den Rat der Dokumentation zum Erstellen unnötiger Warnungen zu zitieren.

enter image description here

Anmerkungen:

Action Sheet (zeige mir ein Beispiel)

enter image description here

Aktionsblätter Geben Sie dem Benutzer eine Liste mit Auswahlmöglichkeiten. Sie werden je nach Größe und Ausrichtung des Geräts entweder am unteren Bildschirmrand oder in einem Popover angezeigt. Wie bei Warnungen wird ein UIAlertController verwendet, um ein Aktionsblatt zu erstellen. Vor iOS 8 wurde UIActionSheet verwendet, aber jetzt heißt es in der Dokumentation :

Wichtig:UIActionSheet ist in iOS 8 veraltet. (Beachten Sie, dass UIActionSheetDelegate ebenfalls veraltet ist.) Zum Erstellen und Verwalten von Aktionsblättern in iOS 8 und höher Verwenden Sie UIAlertController mit preferredStyle von UIAlertControllerStyleActionSheet .

Modal View (zeige mir ein Beispiel)

enter image description here

Eine modale Ansicht ist eine eigenständige Ansicht, die alles enthält, was zum Ausführen einer Aufgabe erforderlich ist. Es kann den gesamten Bildschirm einnehmen oder nicht. Verwenden Sie zum Erstellen einer modalen Ansicht ein UIPresentationController mit einem der Modal Presentation Styles .

Siehe auch

Popover (zeig mir ein Beispiel)

enter image description here

Ein Popover ist eine Ansicht, die angezeigt wird, wenn ein Benutzer auf etwas tippt und ausgeblendet wird, wenn er darauf tippt. Es hat einen Pfeil, der die Steuerung oder den Ort anzeigt, von dem aus der Hahn gemacht wurde. Der Inhalt kann so ziemlich alles sein, was Sie in einen View Controller einfügen können. Sie erstellen ein Popover mit einem UIPopoverPresentationController . (Vor iOS 8 war UIPopoverController die empfohlene Methode.)

In der Vergangenheit gab es Popovers nur auf dem iPad, aber ab iOS 8 können Sie sie auch auf einem iPhone herunterladen (siehe hier , hier und hier) ).

Siehe auch

Benachrichtigungen

enter image description here

Benachrichtigungen sind Töne/Vibrationen, Warnungen/Banner oder Abzeichen, die den Benutzer über etwas benachrichtigen, auch wenn die App nicht im Vordergrund ausgeführt wird.

enter image description here

Siehe auch

Ein Hinweis zu Android Toasts

enter image description here

In Android ist ein Toast eine kurze Meldung, die für kurze Zeit auf dem Bildschirm angezeigt wird und dann automatisch verschwindet, ohne die Benutzerinteraktion mit der App zu unterbrechen.

Leute aus einem Android Hintergrund möchten wissen, was die iOS-Version eines Toasts ist. Einige Beispiele für diese Fragen kann er finden hier , hier , hier und hier . Die Antwort ist, dass es gibt kein Äquivalent zu einem Toast in iOS. Verschiedene Problemumgehungen wurden vorgestellt:

  • Machen Sie Ihre eigenen mit einer Unterklasse UIView
  • Importieren Sie ein Drittanbieterprojekt, das einen Toast nachahmt
  • Verwenden Sie einen knopflosen Alarm mit einem Timer

Mein Rat ist jedoch, bei den Standardoptionen für die Benutzeroberfläche zu bleiben, die bereits mit iOS geliefert werden. Versuchen Sie nicht, dass Ihre App genauso aussieht und sich genauso verhält wie die Android= Version. Überlegen Sie, wie Sie sie neu packen, damit sie aussieht und sich anfühlt wie eine iOS-App.

166
Suragch

Seit der Veröffentlichung von iOS 8 ist UIAlertView veraltet. IAlertController ist der Ersatz.

Hier ist ein Beispiel, wie es in Swift aussieht:

let alert = UIAlertController(title: "Hello!", message: "Message", preferredStyle: UIAlertControllerStyle.alert)
let alertAction = UIAlertAction(title: "OK!", style: UIAlertActionStyle.default)
{
    (UIAlertAction) -> Void in
}
alert.addAction(alertAction)
present(alert, animated: true)
{
    () -> Void in
}

Wie Sie sehen, können wir mit der API Rückrufe sowohl für die Aktion als auch für die Anzeige der Warnung implementieren, was sehr praktisch ist!

Aktualisiert für Swift 4.2

let alert = UIAlertController(title: "Hello!", message: "Message", preferredStyle: UIAlertController.Style.alert)
let alertAction = UIAlertAction(title: "OK!", style: UIAlertAction.Style.default)
        {
            (UIAlertAction) -> Void in
        }
        alert.addAction(alertAction)
        present(alert, animated: true)
        {
            () -> Void in
        }
58
Entalpi

Aktualisiert für iOS 8.

Seit iOS 8.0 müssen Sie UIAlertController wie folgt verwenden:

-(void)alertMessage:(NSString*)message
{
    UIAlertController* alert = [UIAlertController
          alertControllerWithTitle:@"Alert"
          message:message
          preferredStyle:UIAlertControllerStyleAlert];

    UIAlertAction* defaultAction = [UIAlertAction 
          actionWithTitle:@"OK" style:UIAlertActionStyleDefault
         handler:^(UIAlertAction * action) {}];

    [alert addAction:defaultAction];
    [self presentViewController:alert animated:YES completion:nil];
}

Wobei self in meinem Beispiel ein UIViewController ist, der die "presentViewController" -Methode für ein Popup implementiert.

David

24
us_david

Für Swift 3 & Swift 4:

Da UIAlertView veraltet ist, gibt es eine gute Möglichkeit, Alert on Swift 3 anzuzeigen

let alertController = UIAlertController(title: NSLocalizedString("No network connection",comment:""), message: NSLocalizedString("connected to the internet to use this app.",comment:""), preferredStyle: .alert)
let defaultAction = UIAlertAction(title:     NSLocalizedString("Ok", comment: ""), style: .default, handler: { (pAlert) in
                //Do whatever you wants here
        })
alertController.addAction(defaultAction)
self.present(alertController, animated: true, completion: nil)

Veraltet:

Dies ist die Swift Version, inspiriert von der überprüften Antwort:

AlertView anzeigen:

   let alert = UIAlertView(title: "No network connection", 
                           message: "You must be connected to the internet to use this app.", delegate: nil, cancelButtonTitle: "Ok")
    alert.delegate = self
    alert.show()

Fügen Sie den Delegaten zu Ihrem Ansichtscontroller hinzu:

class AgendaViewController: UIViewController, UIAlertViewDelegate

Wenn der Benutzer auf die Schaltfläche klickt, wird dieser Code ausgeführt:

func alertView(alertView: UIAlertView, clickedButtonAtIndex buttonIndex: Int) {


}
10
Kevin ABRIOUX

Obwohl ich bereits eine Übersicht verschiedener Arten von Popups geschrieben habe, benötigen die meisten Leute nur einen Alert.

So implementieren Sie ein Popup-Dialogfeld

enter image description here

class ViewController: UIViewController {

    @IBAction func showAlertButtonTapped(_ sender: UIButton) {

        // create the alert
        let alert = UIAlertController(title: "My Title", message: "This is my message.", preferredStyle: UIAlertController.Style.alert)

        // add an action (button)
        alert.addAction(UIAlertAction(title: "OK", style: UIAlertAction.Style.default, handler: nil))

        // show the alert
        self.present(alert, animated: true, completion: nil)
    }
}

Meine ausführlichere Antwort lautet hier .

6
Suragch

Hier ist die C # -Version in Xamarin.iOS

var alert = new UIAlertView("Title - Hey!", "Message - Hello iOS!", null, "Ok");
alert.Show();
0
Art Drozdov