Risposte:
Sì, a UIAlertView
è probabilmente quello che stai cercando. Ecco un esempio:
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];
Se vuoi fare qualcosa di più fantasioso, supponi di visualizzare un'interfaccia utente personalizzata nella tua UIAlertView
, puoi sottoclassare UIAlertView
e inserire componenti dell'interfaccia utente personalizzati nel init
metodo. Se si desidera rispondere alla pressione di un pulsante dopo che UIAlertView
appare un , è possibile impostare quanto delegate
sopra e implementare- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
metodo.
Potresti anche voler guardare il UIActionSheet
.
Diverse persone che vengono a questa domanda significano cose diverse da una finestra popup. Consiglio vivamente di leggere la documentazione di Viste temporanee . La mia risposta è in gran parte un riassunto di questa e altra documentazione correlata.
Gli avvisi visualizzano un titolo e un messaggio opzionale. L'utente deve riconoscerlo (un avviso a un pulsante) o fare una semplice scelta (un avviso a due pulsanti) prima di continuare. Si crea un avviso con a UIAlertController
.
Vale la pena citare gli avvertimenti e i consigli della documentazione sulla creazione di allarmi non necessari.
Appunti:
UIAlertView
stato deprecato. È necessario utilizzare UIAlertController
per creare avvisi ora.I fogli di azione offrono all'utente un elenco di scelte. Appaiono nella parte inferiore dello schermo o in una sosta a seconda delle dimensioni e dell'orientamento del dispositivo. Come per gli avvisi, a UIAlertController
viene utilizzato per creare un foglio di azione. Prima di iOS 8, UIActionSheet
veniva utilizzato, ma ora la documentazione dice:
Importante:
UIActionSheet
è deprecato in iOS 8. (Nota cheUIActionSheetDelegate
è anche deprecato.) Per creare e gestire fogli di azione in iOS 8 e versioni successive, utilizzare inveceUIAlertController
con unpreferredStyle
ofUIAlertControllerStyleActionSheet
.
Una vista modale è una vista autonoma che ha tutto il necessario per completare un'attività. Potrebbe occupare o meno lo schermo intero. Per creare una vista modale, utilizzare a UIPresentationController
con uno degli stili di presentazione modali .
Guarda anche
Un Popover è una vista che appare quando un utente tocca qualcosa e scompare quando lo tocca. Ha una freccia che mostra il controllo o la posizione da cui è stato effettuato il tocco. Il contenuto può essere qualsiasi cosa tu possa inserire in un controller di visualizzazione. Fai una sosta con a UIPopoverPresentationController
. (Prima di iOS 8,UIPopoverController
era il metodo consigliato.)
In passato i popover erano disponibili solo su iPad, ma a partire da iOS 8 puoi anche ottenerli su un iPhone (vedi qui , qui e qui ).
Guarda anche
Le notifiche sono suoni / vibrazioni, avvisi / banner o badge che avvisano l'utente di qualcosa anche quando l'app non è in esecuzione in primo piano.
Guarda anche
In Android, un Toast è un breve messaggio che viene visualizzato sullo schermo per un breve periodo di tempo e poi scompare automaticamente senza interrompere l'interazione dell'utente con l'app.
Le persone che provengono da uno sfondo Android vogliono sapere qual è la versione iOS di un Toast. Alcuni esempi di queste domande possono essere trovati qui , qui , qui e qui . La risposta è che non esiste un equivalente di un Toast in iOS . Varie soluzioni alternative che sono state presentate includono:
UIView
Tuttavia, il mio consiglio è di attenersi alle opzioni dell'interfaccia utente standard già disponibili con iOS. Non tentare di rendere l'aspetto della tua app e comportarsi esattamente come la versione di Android. Pensa a come riconfezionarlo in modo che appaia e si senta come un'app iOS.
Dal rilascio di iOS 8, UIAlertView
ora è obsoleto; UIAlertController è la sostituzione.
Ecco un esempio di come appare in 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
}
Come puoi vedere, l'API ci consente di implementare i callback sia per l'azione sia quando presentiamo l'avviso, il che è abbastanza utile!
Aggiornato per 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
}
Aggiornato per iOS 8.0
Da iOS 8.0, dovrai utilizzare UIAlertController come segue:
-(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];
}
Dove self nel mio esempio è un UIViewController, che implementa il metodo "presentViewController" per un popup.
David
Per Swift 3 e Swift 4:
Poiché UIAlertView è obsoleto, esiste un buon metodo per visualizzare Alert su 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)
Obsoleto:
Questa è la versione rapida ispirata alla risposta selezionata:
Visualizza 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()
Aggiungi il delegato al controller della vista:
class AgendaViewController: UIViewController, UIAlertViewDelegate
Quando l'utente fa clic sul pulsante, questo codice verrà eseguito:
func alertView(alertView: UIAlertView, clickedButtonAtIndex buttonIndex: Int) {
}
Anche se ho già scritto una panoramica di diversi tipi di popup, la maggior parte delle persone ha solo bisogno di un avviso.
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)
}
}
La mia risposta più completa è qui .
Ecco la versione C # in Xamarin.iOS
var alert = new UIAlertView("Title - Hey!", "Message - Hello iOS!", null, "Ok");
alert.Show();