Ho la seguente funzione a lavorare come mi aspetto, in iOS 8:funzioni come parametri Passando Swift
func showConfirmBox(msg:String, title:String,
firstBtnStr:String,
secondBtnStr:String,
caller:UIViewController) {
let userPopUp = UIAlertController(title:title,
message:msg, preferredStyle:UIAlertControllerStyle.Alert)
userPopUp.addAction(UIAlertAction(title:firstBtnStr, style:UIAlertActionStyle.Default,
handler:{action in}))
userPopUp.addAction(UIAlertAction(title:secondBtnStr, style:UIAlertActionStyle.Default,
handler:{action in}))
caller.presentViewController(userPopUp, animated: true, completion: nil)
}
Vorrei fare qualcosa di simile a quanto segue, al fine di passare come argomenti i metodi da eseguito quando uno o l'altro dei pulsanti stanno per essere toccato:
func showConfirmBox(msg:String, title:String,
firstBtnStr:String, firstSelector:Selector,
secondBtnStr:String, secondSelector:Selector,
caller:UIViewController) {
let userPopUp = UIAlertController(title:title,
message:msg, preferredStyle:UIAlertControllerStyle.Alert)
userPopUp.addAction(UIAlertAction(title:firstBtnStr, style:UIAlertActionStyle.Default,
handler:{action in caller.firstSelector()}))
userPopUp.addAction(UIAlertAction(title:secondBtnStr, style:UIAlertActionStyle.Default,
handler:{action in caller.secondSelector()}))
caller.presentViewController(userPopUp, animated: true, completion: nil)
}
Ovviamente non sto facendo la cosa giusta con firstSelector e secondSelector, perché quello che ho provato fino ad ora non ha funzionato. Suppongo che non sto usando la sintassi giusta per quello che voglio, ma sono sicuro che è possibile fare ciò che mi piacerebbe fare. Qualche idea sul modo di farlo correttamente?
Cosa vuol dire "non ha funzionato"? Si prega di fornire informazioni più specifiche. –
Quello che voglio dire è che ottengo messaggi di errore, dal compilatore. Potrei includere quelli se è utile. Piuttosto che suppongo che la sintassi nella mia seconda funzione sia semplicemente sbagliata. – Michel
Sto cercando da solo di trovare altri modi (usando i generici per esempio) ma a questo punto ancora senza successo. – Michel