J'ai travaillé pour créer un UIAlertView dans Swift, mais pour une raison quelconque, je ne peux pas obtenir la bonne déclaration parce que j'obtiens cette erreur:
Impossible de trouver une surcharge pour 'init' qui accepte les arguments fournis
Voici comment je l'ai écrit:
let button2Alert: UIAlertView = UIAlertView(title: "Title", message: "message",
delegate: self, cancelButtonTitle: "OK", otherButtonTitles: nil)
Ensuite, pour l'appeler, j'utilise:
button2Alert.show()
En ce moment, il plante et je n'arrive pas à avoir la bonne syntaxe.
ios
swift
cocoa-touch
uialertview
uialertcontroller
BlueBear
la source
la source
UIAlertView
etUIActionSheet
a été remplacé parUIAlertController
dans iOS 8, avez-vous regardé cela?self
appartient à adopte le protocoleUIAlertViewDelegate
(la méthode recommandée pour cela, dans Swift, est avec une extension).Réponses:
De la
UIAlertView
classe:Sur iOS 8, vous pouvez faire ceci:
Il
UIAlertController
s'agit maintenant d' une classe unique pour créer et interagir avec ce que nous connaissions commeUIAlertView
s etUIActionSheet
s sur iOS 8.Modifier: pour gérer les actions:
Modifier pour Swift 3:
Modifier pour Swift 4.x:
la source
UIAlertView
classe et le commentaire se trouve juste en haut de la déclaration de classe..Default
?Un bouton
Deux boutons
Trois boutons
Manipulation des robinets de bouton
Le
handler
étaitnil
dans les exemples ci - dessus. Vous pouvez remplacernil
par une fermeture pour faire quelque chose lorsque l'utilisateur appuie sur un bouton. Par exemple:Remarques
UIAlertAction.Style
types. Ils pourraient tous l'être.default
.la source
Vous pouvez créer un UIAlert à l'aide du constructeur standard, mais celui «hérité» ne semble pas fonctionner:
la source
Dans Swift 4.2 et Xcode 10
Méthode 1:
ALERTE SIMPLE
Méthode 2:
ALERTE AVEC CLASSE PARTAGÉE
Si vous voulez un style de classe partagé (écrivez une fois, utilisez partout)
Appelez maintenant une alerte comme celle-ci dans tous les articles
Méthode 3:
PRÉSENTE ALERTE EN HAUT DE TOUTES LES FENÊTRES
Si vous souhaitez présenter une alerte au-dessus de toutes les vues, utilisez ce code
Appel de fonction
Méthode 4:
Alerte avec extension
Maintenant appelle comme ça
Méthode 5:
ALERTE AVEC TEXTFIELDS
Si vous souhaitez ajouter des champs de texte pour alerter.
Méthode 6:
Alerte dans SharedClass avec extension
Appelez maintenant directement comme ceci
Méthode 7:
Alerte sans classe partagée avec Extension dans une classe distincte pour alerte.
Créez une nouvelle classe Swift et
import UIKit
. Copiez et collez le code ci-dessous.Appelez maintenant la fonction d'alerte comme celle-ci dans toutes vos classes (ligne unique).
Comment c'est....
la source
if timeInterval != 0 { if #available(iOS 10.0, *) { Timer.scheduledTimer(withTimeInterval: timeInterval, repeats: false, block: { _ in alert.dismiss(animated: true, completion: nil) }) } else { // Fallback on earlier versions } }
Clic de vue
Fait avec deux boutons OK et Annuler
la source
Si vous ciblez iOS 7 et 8, vous avez besoin de quelque chose comme ça pour vous assurer que vous utilisez la bonne méthode pour chaque version, car elle
UIAlertView
est déconseillée dans iOS 8, maisUIAlertController
n'est pas disponible dans iOS 7:la source
UIAlertView
jusqu'à ce que vous supprimiez le support pour iOS 7. Apple ne rejettera pas votre application pour cela.Avec les extensions de protocole de Swift 2, vous pouvez créer un protocole qui fournit une implémentation par défaut à vos contrôleurs de vue:
ShowsAlert.swift
ViewController.swift
la source
Afficher UIAlertView dans un langage rapide: -
Protocole UIAlertViewDelegate
Afficher UIAlertViewController dans un langage rapide: -
la source
Ne fournissez tout simplement pas otherButtonTitles dans le constructeur.
Mais je suis d'accord avec Oscar, cette classe est déconseillée dans iOS 8, donc il n'y aura pas d'utilisation d'UIAlertView si vous utilisez une application iOS 8 uniquement. Sinon, le code ci-dessus fonctionnera.
la source
J'ai trouvé celui-ci,
pas bon mais ça marche :)
Mise à jour:
mais j'ai trouvé sur le fichier d'en-tête comme:
quelqu'un peut expliquer cela.
la source
Pour SWIFT4 , je pense que l'extension
UIViewController
et la création d'un contrôle de confirmation réutilisable est la manière la plus élégante.Vous pouvez étendre le
UIViewController
comme ci-dessous:Ensuite, vous pouvez l'utiliser à tout moment:
la source
la source
J'ai une autre astuce. Supposons que vous ayez 5 classes où une alerte de déconnexion doit être appliquée. Essayez avec l'extension de classe rapide.
Fichier - Nouveau - Classe Swift - Nommez-le.
Ajoutez ce qui suit:
Implémentez en utilisant: self.makeLogOutAlert (). J'espère que cela aide.
la source
J'ai créé une classe singleton pour la rendre pratique à utiliser depuis n'importe où dans votre application: https://github.com/Swinny1989/Swift-Popups
Vous pouvez ensuite créer un popup avec plusieurs boutons comme celui-ci:
ou des popups avec un seul bouton comme celui-ci:
la source
Swift 3
Ce qui suit est un exemple simple de la façon de créer une alerte simple avec un bouton avec Swift 3.
Dans l'exemple ci-dessus, le rappel de poignée de l'action a été omis car le comportement par défaut d'une vue d'alerte avec un bouton doit disparaître lorsque vous cliquez sur le bouton.
Voici comment créer une autre action, qui pourrait être ajoutée à l'alerte avec "alert.addAction (action)". Les différents styles sont .default, .destructive et .cancel.
la source
J'ai obtenu le
UIAlertView
code d'initialisation suivant pour compiler sans erreurs (je pense que la dernière partie variée est peut-être délicate). Mais je devais m'assurer que la classeself
(que je transmets en tant que délégué) adoptait leUIAlertViewDelegate
protocole pour que les erreurs de compilation disparaissent:Au fait, c'est l'erreur que j'obtenais (à partir de Xcode 6.4):
Comme d'autres l'ont mentionné, vous devez migrer vers UIAlertController si vous pouvez cibler iOS 8.x +. Pour prendre en charge iOS 7, utilisez le code ci-dessus (iOS 6 n'est pas pris en charge par Swift).
la source
la source
Vous pouvez utiliser cette extension simple avec n nombre de boutons et les actions associées swift4 et au-dessus
vous pouvez l'utiliser comme,
la source
La raison pour laquelle cela ne fonctionne pas car une valeur que vous avez transmise à la fonction n'est pas correcte. swift n'aime pas Objective-C, vous pouvez mettre nil aux arguments qui sont de type classe sans aucune restriction (peut-être). L'argument otherButtonTitles est défini comme non facultatif dont son type n'a pas (?) À la fin. vous devez donc lui transmettre une valeur concrète.
la source
Essaye ça
la source
Utilisez ce code pour afficher une vue d'alerte
Référence: Swift Show Alert utilisant UIAlertController
la source
dans xcode 9
la source
SWIFT 4: créez simplement une extension pour UIViewController comme suit:
Maintenant, dans votre ViewController, appelez directement la fonction ci-dessus comme si elles étaient fournies par UIViewController.
la source
essaye ça. Mettez le code ci-dessous dans le bouton.
la source
Voici un exemple amusant dans Swift:
la source
Voici une fonction assez simple d'AlertView dans Swift:
Vous devez passer le message sous forme de chaîne où vous utilisez cette fonction.
la source
L'ancienne façon: UIAlertView
La nouvelle façon: UIAlertController
la source
sur IOS 9, vous pouvez le faire
la source
// Classe générique pour UIAlertView
Utilisation:-
la source
la source