Impossibile trovare una spiegazione chiara e informativa per questo.Dove trovare una spiegazione chiara sull'allarme rapido (UIAlertController)?
risposta
Dopo aver cercato un po 'su un argomento non ho trovare una spiegazione chiara, anche nella sua classe di riferimento UIAlertController Reference
E' ok, ma non abbastanza chiaro per me.
Così, dopo aver raccolto alcune paci ho deciso di fare la mia spiegazione (Speranza che aiuta)
Quindi qui si va:
UIAlertView
è deprecato come sottolineato: UIAlertView in SwiftUIAlertController
dovrebbe essere usato in iOS8 + quindi per crearne uno occorre prima istanziarlo, il Costruttore (init) ottiene 3 parametri: .515.053.691,36321 milioni
2.1 titolo: String -> text big-in grassetto per visualizzare sulla parte superiore della finestra di dialogo di avviso
2.2 messaggio: String -> testo più piccolo (praticamente spiega, di per sé)
2,3 prefferedStyle:UIAlertControllerStyle
- > definire lo stile finestra di dialogo, nella maggior parte dei casi: UIAlertControllerStyle.Alert
ora mostrare in realtà per l'utente, possiamo utilizzare
showViewController
opresentViewController
e passare il nostro avviso come parametro diPer aggiungere un po 'di interazione con l'utente che possiamo utilizzare:
4,1 UIAlertController.addAction
per creare pulsanti
4.2 UIAlertController.addTextField
per creare campi di testo
Modifica nota: esempi di codice qui sotto, aggiornato per SWIFT 3 sintassi
Esempio 1: semplice finestra di dialogo
@IBAction func alert1(sender: UIButton) {
//simple alert dialog
let alert=UIAlertController(title: "Alert 1", message: "One has won", preferredStyle: UIAlertControllerStyle.alert);
//show it
show(alert, sender: self);
}
Esempio 2: Dialogo con un testo di input Campo & due pulsanti
@IBAction func alert2(sender: UIButton) {
//Dialog with one input textField & two buttons
let alert=UIAlertController(title: "Alert 2", message: "Two will win too", preferredStyle: UIAlertControllerStyle.alert);
//default input textField (no configuration...)
alert.addTextField(configurationHandler: nil);
//no event handler (just close dialog box)
alert.addAction(UIAlertAction(title: "No", style: UIAlertActionStyle.cancel, handler: nil));
//event handler with closure
alert.addAction(UIAlertAction(title: "Yes", style: UIAlertActionStyle.default, handler: {(action:UIAlertAction) in
let fields = alert.textFields!;
print("Yes we can: "+fields[0].text!);
}));
present(alert, animated: true, completion: nil);
}
Esempio 3: Una misura textField ingresso & un pulsante
@IBAction func alert3(sender: UIButton) {
// one input & one button
let alert=UIAlertController(title: "Alert 3", message: "Three will set me free", preferredStyle: UIAlertControllerStyle.alert);
//configured input textField
var field:UITextField?;// operator ? because it's been initialized later
alert.addTextField(configurationHandler:{(input:UITextField)in
input.placeholder="I am displayed, when there is no value ;-)";
input.clearButtonMode=UITextFieldViewMode.whileEditing;
field=input;//assign to outside variable(for later reference)
});
//alert3 yesHandler -> defined in the same scope with alert, and passed as event handler later
func yesHandler(actionTarget: UIAlertAction){
print("YES -> !!");
//print text from 'field' which refer to relevant input now
print(field!.text!);//operator ! because it's Optional here
}
//event handler with predefined function
alert.addAction(UIAlertAction(title: "Yes", style: UIAlertActionStyle.default, handler: yesHandler));
present(alert, animated: true, completion: nil);
}
Speranza che aiuta, e buona fortuna ;-)
Sono felice che tu abbia condiviso ciò che hai imparato !! grazie mille per la spiegazione passo per passo .. mi piace pensare;) – swiftBoy
http://iosdevcenters.blogspot.in/2016/03/uialertcontroller-in-swift.html –
Sto correndo su Xcode 7.3.1 e test su iOS9 . Quando si usa showViewController (alert, sender: self) dal primo esempio con UINavigationController (senza che sia ok) stavo diventando strano comportamento. Aggiunge la vista di avviso alla barra di navigazione. L'utilizzo di self.presentViewController (alert, animato: true, completion: nil) funziona correttamente. – pls
Un'istanza della UIAlertController può essere presentata in modo modale sullo schermo come qualsiasi altro UIViewController che usa il presentViewController: animated: completion: method. Ciò che distingue l'istanza di UIAlertController dal lavoro come ActionSheet o da AlertView è il parametro di stile che si passa al momento della sua creazione.
Non più la delega
se si è usato un UIActionSheet o UIAlertView, si sa che il modo per ottenere un callback da essa è per una classe (nella maggior parte dei casi la ViewController) per implementare il protocollo UIActionSheetDelegate o UIAlertViewDelegate. Esistono alcuni progetti open source che hanno sostituito questo modello di delega con callback basati su blocchi, ma le API ufficiali non sono mai state aggiornate. UIAlertController non utilizza la delega. Al contrario, ha una collezione di oggetti UIAlertAction, che usano chiusure (o blocchi se si utilizza Objective-C) per gestire l'input dell'utente.
Per Azione Foglio
@IBAction func showActionSheet(sender: AnyObject) {
//Create the AlertController
let actionSheetController: UIAlertController = UIAlertController(title: "Action Sheet", message: "Swiftly Now! Choose an option!", preferredStyle: .ActionSheet)
//Create and add the Cancel action
let cancelAction: UIAlertAction = UIAlertAction(title: "Cancel", style: .Cancel) { action -> Void in
//Just dismiss the action sheet
}
actionSheetController.addAction(cancelAction)
//Create and add first option action
let takePictureAction: UIAlertAction = UIAlertAction(title: "Take Picture", style: .Default) { action -> Void in
//Code for launching the camera goes here
}
actionSheetController.addAction(takePictureAction)
//Create and add a second option action
let choosePictureAction: UIAlertAction = UIAlertAction(title: "Choose From Camera Roll", style: .Default) { action -> Void in
//Code for picking from camera roll goes here
}
actionSheetController.addAction(choosePictureAction)
//Present the AlertController
self.presentViewController(actionSheetController, animated: true, completion: nil)
}
Per AlertView con campo di testo
@IBAction func showAlert(sender: AnyObject) {
//Create the AlertController
let actionSheetController: UIAlertController = UIAlertController(title: "Alert", message: "Swiftly Now! Choose an option!", preferredStyle: .Alert)
//Create and add the Cancel action
let cancelAction: UIAlertAction = UIAlertAction(title: "Cancel", style: .Cancel) { action -> Void in
//Do some stuff
}
actionSheetController.addAction(cancelAction)
//Create and an option action
let nextAction: UIAlertAction = UIAlertAction(title: "Next", style: .Default) { action -> Void in
//Do some other stuff
}
actionSheetController.addAction(nextAction)
//Add a text field
actionSheetController.addTextFieldWithConfigurationHandler { textField -> Void in
//TextField configuration
textField.textColor = UIColor.blueColor()
}
//Present the AlertController
self.presentViewController(actionSheetController, animated: true, completion: nil)
}
Grazie per il contributo, anche io ho già risposto a un anno e mezzo fa. Ancora la sua risposta molto bella quindi ho votato volentieri ;-) BTW, puoi anche mostrare l'avviso con il metodo showViewController - meno flessibile, ma ha senso quando il completamento non è necessario –
Se mostrare un avviso richiede così tanto lettura? NO. – chrisl08
Alcuni di sintassi è cambiato dal momento che le risposte originali. Ecco alcuni esempi di codice che avvisano l'utente se non hanno effettuato l'accesso a iCloud.
CKContainer.default().accountStatus { (accountStatus, error) in
switch accountStatus {
case .available:
print("iCloud Available")
case .noAccount:
print("No iCloud account")
//simple alert dialog
let alert=UIAlertController(title: "Sign in to iCloud", message: "This application requires iClound. Sign in to your iCloud account to write records. On the Home screen, launch Settings, tap iCloud, and enter your Apple ID. Turn iCloud Drive on. If you don't have an iCloud account, tap Create a new Apple ID", preferredStyle: UIAlertControllerStyle.alert);
//no event handler (just close dialog box)
alert.addAction(UIAlertAction(title: "Cancel", style: UIAlertActionStyle.cancel, handler: nil));
//show it
self.present(alert, animated: true, completion: nil)
case .restricted:
print("iCloud restricted")
case .couldNotDetermine:
print("Unable to determine iCloud status")
}
}
- 1. Dove posso leggere una spiegazione chiara di POE (Perl Object Environment)?
- 2. dove posso trovare un tutorial rapido neo4j?
- 3. Una spiegazione più chiara per la ricorsione e il flusso di esecuzione in JavaScript?
- 4. Pseudocodice: una definizione chiara?
- 5. Dove posso trovare una spiegazione di tutti i campi della matrice di trasformazione?
- 6. Una semplice spiegazione degli Anelli in Riak?
- 7. Dove posso trovare l'algoritmo diff?
- 8. dove posso trovare un buon esempio/spiegazione sull'operazione di divisione in Algebra relazionale?
- 9. Dove posso trovare una buona introduzione mwclient?
- 10. Spiegazione una dichiarazione Java
- 11. Dove posso trovare Mono.Cecil.Pdb.dll?
- 12. Dove posso trovare GACUtil?
- 13. Dove trovare Castle.MicroKernel.dll
- 14. Dove trovare sphinxcontrib.autohttp.flask?
- 15. Dove trovare struct _IO_FILE
- 16. dove trovare config.vm.boot_timeout?
- 17. Dove posso trovare ESAPI.properties?
- 18. self.navigationController? .popViewControllerAnimated from UIAlertController
- 19. Cercare una chiara descrizione del formato XML .xlsx di Excel
- 20. Spiegazione dei numeri in Haskell
- 21. Compressione dati: codifica aritmetica non chiara
- 22. cambia sfondo UIAlertcontroller Colore
- 23. dove posso trovare l'estensione php_memcached.dll?
- 24. popup WatchKit e UIAlertView/UIAlertController
- 25. Mostra UIAlertController sulla tastiera
- 26. Previene UIAlertController per respingere
- 27. Scopes funzione Capire non chiara
- 28. SynEdit - dove trovare la comunità?
- 29. Dove posso trovare Tridion.ContentManager.Data.ContentManagement DLL?
- 30. Dove trovare i sorgenti JavaFX?
formato L'Stack Overflow richiede una domanda. Se vuoi rispondere alla tua stessa domanda, puoi, ma prima devi fare una domanda. Riformatta il tuo post nella forma della domanda a cui stavi cercando di trovare una risposta, quindi sposta il post in alto alla risposta. – vacawama
È possibile utilizzare un 'UIAlertController' per un avviso e un foglio di azione. Trovo gli esempi il modo più semplice per capire come funzionano le cose. Ecco un [esempio di avviso] (https://stackoverflow.com/a/33340757/3681880) ed ecco un [esempio di foglio di azione] (https://stackoverflow.com/a/32991999/3681880). – Suragch