Après un calcul, je souhaite afficher une boîte de dialogue ou un message d'alerte transmettant un message à l'utilisateur. Est-ce que quelqu'un sait où je peux trouver plus d'informations à ce sujet?
Oui, un UIAlertView
est probablement ce que vous recherchez. Voici un exemple:
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];
Si vous voulez faire quelque chose de plus sophistiqué, disons afficher une interface utilisateur personnalisée dans votre UIAlertView
, vous pouvez sous-classer UIAlertView
et insérer des composants d'interface utilisateur personnalisés dans la méthode init
. Si vous souhaitez répondre à une pression sur un bouton après l'apparition d'un UIAlertView
, vous pouvez définir le paramètre delegate
ci-dessus et mettre en œuvre la méthode - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
.
Vous voudrez peut-être aussi regarder la UIActionSheet
.
Les différentes personnes qui viennent à cette question signifient différentes choses par une boîte de dialogue contextuelle. Je recommande fortement de lire la documentation Temporary Views . Ma réponse est en grande partie un résumé de ceci et d’autres documents connexes.
Les alertes affichent un titre et un message facultatif. L'utilisateur doit l'acquitter (alerte à un bouton) ou faire un choix simple (alerte à deux boutons) avant de continuer. Vous créez une alerte avec un UIAlertController
.
Il convient de citer les avertissements et les conseils de la documentation concernant la création d'alertes inutiles.
Remarques:
UIAlertView
était obsolète. Vous devez utiliser UIAlertController
pour créer des alertes maintenant.Les feuilles d'action donnent à l'utilisateur une liste de choix. Ils apparaissent au bas de l'écran ou dans une fenêtre contextuelle en fonction de la taille et de l'orientation de l'appareil. Comme pour les alertes, un UIAlertController
est utilisé pour créer une feuille d'actions. Avant iOS 8, UIActionSheet
était utilisé, mais maintenant la documentation indique:
Important:
UIActionSheet
est obsolète dans iOS 8. (Notez queUIActionSheetDelegate
est également obsolète.) Pour créer et gérer des feuilles d'action dans iOS 8 et versions ultérieures, utilisez plutôtUIAlertController
avec unpreferredStyle
deUIAlertControllerStyleActionSheet
.
Une vue modale est une vue autonome qui contient tout ce dont elle a besoin pour mener à bien une tâche. Il peut ou non occuper tout l'écran. Pour créer une vue modale, utilisez un UIPresentationController
avec l'un des styles de présentation modal .
Voir également
A Popover is a view that appears when a user taps on something and disappears when tapping off it. It has an arrow showing the control or location from where the tap was made. The content can be just about anything you can put in a View Controller. You make a popover with a UIPopoverPresentationController
. (Before iOS 8, UIPopoverController
was the recommended method.)
Dans le passé, les popovers n'étaient disponibles que sur l'iPad, mais à partir de iOS 8, vous pouvez également les obtenir sur un iPhone (voir ici , ici , et ici ).
Voir également
Les notifications sont des sons/vibrations, des alertes/bannières ou des badges qui informent l'utilisateur de quelque chose même lorsque l'application ne s'exécute pas au premier plan.
Voir également
Sous Android, un Toast est un message court qui s'affiche à l'écran pendant un court laps de temps, puis disparaît automatiquement sans perturber l'interaction de l'utilisateur avec l'application.
Les personnes provenant d'un milieu Android veulent savoir quelle est la version iOS d'un Toast. Quelques exemples de ces questions peuvent-ils être trouvés ici , ici , ici , et ici . La réponse est que il n'y a pas d'équivalent à un pain grillé dans iOS . Les solutions de contournement présentées comprennent:
UIView
Cependant, mon conseil est de rester avec les options d'interface utilisateur standard déjà fournies avec iOS. N'essayez pas de donner à votre application un aspect et un comportement identiques à ceux de la version Android. Pensez à la façon de la reconditionner pour qu'elle ressemble à une application iOS.
Depuis la sortie d'iOS 8, UIAlertView
est maintenant obsolète. IAlertController est le remplacement.
Voici un exemple de son apparence dans Swift:
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
}
Comme vous pouvez le constater, l’API nous permet d’implémenter des rappels pour l’action et lors de la présentation de l’alerte, ce qui est très pratique!
Mis à jour pour 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
}
Mise à jour pour iOS 8.
Depuis iOS 8.0, vous devrez utiliser UIAlertController comme suit:
-(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];
}
Où self dans mon exemple est un UIViewController, qui implémente la méthode "presentViewController" pour une fenêtre contextuelle.
David
Pour Swift 3 & Swift 4:
UIAlertView étant obsolète, il existe un bon moyen d'afficher Alert sur Swift 3
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)
Obsolète:
Voici la version Swift inspirée de la réponse vérifiée:
Afficher AlertView:
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()
Ajoutez le délégué à votre contrôleur de vue:
class AgendaViewController: UIViewController, UIAlertViewDelegate
Lorsque l'utilisateur clique sur le bouton, ce code sera exécuté:
func alertView(alertView: UIAlertView, clickedButtonAtIndex buttonIndex: Int) {
}
Bien que j'aie déjà écrit un aperç de différents types de popups, la plupart des gens n'ont besoin que d'une alerte.
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)
}
}
Ma réponse plus complète est ici .
Voici la version C # dans Xamarin.iOS
var alert = new UIAlertView("Title - Hey!", "Message - Hello iOS!", null, "Ok");
alert.Show();