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 UIAlertViewe inserire componenti dell'interfaccia utente personalizzati nel initmetodo. Se si desidera rispondere alla pressione di un pulsante dopo che UIAlertViewappare un , è possibile impostare quanto delegatesopra 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:
UIAlertViewstato deprecato. È necessario utilizzare UIAlertControllerper 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 UIAlertControllerviene utilizzato per creare un foglio di azione. Prima di iOS 8, UIActionSheetveniva 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 inveceUIAlertControllercon unpreferredStyleofUIAlertControllerStyleActionSheet.
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 UIPresentationControllercon 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:
UIViewTuttavia, 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, UIAlertViewora è 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();