Nella mia app rapida ho un UIViewController con un solo pulsante.Come posso visualizzare un messaggio popup in Swift che scompare dopo 3 secondi o può essere cancellato dall'utente immediatamente?
Questo pulsante richiama una funzione che richiama un popup che scompare dopo 3 secondi. Inoltre, dopo questo periodo, stampa un messaggio sulla console. Il codice di questa funzione è il seguente:
func showAlertMsg(title: String, message: String){
let alertController = UIAlertController(title: title, message: message, preferredStyle: .Alert)
self.presentViewController(alertController, animated: true, completion: nil)
let delay = 3.0 * Double(NSEC_PER_SEC)
let time = dispatch_time(DISPATCH_TIME_NOW, Int64(delay))
dispatch_after(time, dispatch_get_main_queue(), {
alertController.dismissViewControllerAnimated(true, completion: nil)
print("popup disappeared")
})
}
Che funziona bene, ma volevo introdurre qualche miglioramento. Volevo aggiungere un pulsante che cancellasse immediatamente questo popup e quindi evitare di visualizzare il messaggio nella console. Esiste un modo per visualizzare tale popup all'utente? Inoltre - c'è un modo per mostrare in questo messaggio popup il contatore con il numero di secondi che si esaurisce che mostra quanto tempo è rimasto fino a quando il popup scompare?
Ecco una risposta simile che ho scritto nel Objectice C http://stackoverflow.com/questions/36048240/countdown-nstimer-in-title-of-a-uialertcontroller-getting-a-null-instead-of-time/36048730#36048730. Essenzialmente devi usare un NSTimer per il conto alla rovescia e chiudere l'avviso dopo il tempo richiesto – Paulw11
Che sembra davvero promettente, devo ammettere :) C'è qualche possibilità che tu abbia un codice smilar in swift? Non sono (ancora) familiare con obj-c: | – user3766930