Réponses:
Oui, UIAlertView
c'est probablement ce que vous cherchez. 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é, par exemple afficher une interface utilisateur personnalisée dans votre UIAlertView
, vous pouvez sous UIAlertView
- classer et insérer des composants d'interface utilisateur personnalisés dans la init
méthode. Si vous souhaitez répondre à une pression de bouton après l' UIAlertView
apparition d' un , vous pouvez définir ce qui delegate
précède et appliquer la - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
méthode.
Vous pouvez également consulter le UIActionSheet
.
Différentes personnes qui viennent à cette question signifient différentes choses par une boîte contextuelle. Je recommande fortement de lire la documentation des vues temporaires . Ma réponse est en grande partie un résumé de cela et d'autres documents connexes.
Les alertes affichent un titre et un message facultatif. L'utilisateur doit l'acquitter (une alerte à un bouton) ou faire un choix simple (une alerte à deux boutons) avant de continuer. Vous créez une alerte avec un UIAlertController
.
Il convient de citer l'avertissement et les conseils de la documentation sur la création d'alertes inutiles.
Remarques:
UIAlertView
était obsolète. Vous devez utiliser UIAlertController
pour créer des alertes maintenant.Les fiches d'action donnent à l'utilisateur une liste de choix. Ils apparaissent soit en bas de l'écran, soit dans un popover en fonction de la taille et de l'orientation de l'appareil. Comme pour les alertes, a UIAlertController
est utilisé pour créer une feuille d'action. Avant iOS 8, UIActionSheet
était utilisé, mais maintenant la documentation dit:
Important:
UIActionSheet
est déconseillé dans iOS 8. (Notez qu'ilUIActionSheetDelegate
est également déconseillé.) 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 possède tout ce dont elle a besoin pour effectuer une tâche. Il peut ou non occuper le plein écran. Pour créer une vue modale, utilisez un UIPresentationController
avec l'un des styles de présentation modale .
Voir également
Un Popover est une vue qui apparaît lorsqu'un utilisateur tape sur quelque chose et disparaît en le tapotant. Il a une flèche indiquant le contrôle ou l'emplacement d'où le robinet a été effectué. Le contenu peut être à peu près tout ce que vous pouvez mettre dans un View Controller. Vous faites un popover avec un UIPopoverPresentationController
. (Avant iOS 8, UIPopoverController
était la méthode recommandée.)
Dans le passé, les popovers n'étaient disponibles que sur l'iPad, mais à partir d'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 n'est pas en cours d'exécution au premier plan.
Voir également
Sous Android, un Toast est un court message qui s'affiche à l'écran pendant une courte période, puis disparaît automatiquement sans perturber l'interaction de l'utilisateur avec l'application.
Les personnes venant d'un arrière-plan Android veulent savoir ce qu'est la version iOS d'un Toast. On peut trouver quelques exemples de ces questions ici , ici , ici et ici . La réponse est qu'il n'y a pas d'équivalent à un Toast dans iOS . Diverses solutions de contournement qui ont été présentées comprennent:
UIView
Cependant, mon conseil est de s'en tenir aux options d'interface utilisateur standard qui viennent déjà avec iOS. N'essayez pas de donner à votre application une apparence 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 désormais obsolète; UIAlertController est le remplaçant.
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 voir, l'API nous permet d'implémenter des rappels pour l'action et lorsque nous présentons l'alerte, ce qui est assez 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
}
Mis à jour pour iOS 8.0
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 un popup.
David
Pour Swift 3 et 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 want here
})
alertController.addAction(defaultAction)
self.present(alertController, animated: true, completion: nil)
Obsolète:
Voici la version rapide 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çu de différents types de fenêtres contextuelles, la plupart des gens ont juste besoin 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();