Sto utilizzando il login di Twitter nel processo di registrazione della mia app. E sto chiedendo l'email dell'utente. Una volta ottenuto, mi piacerebbe presentare un UIAlertController.Swift Tentativo di presentare UIAlertController la cui vista non è nella gerarchia delle finestre (presentata dopo TWTRShareEmailViewController)
Ecco il mio codice:
func askForTWMail(){
if (Twitter.sharedInstance().session() != nil) {
let shareMailVC=TWTRShareEmailViewController(completion: {(mail:String!, error:NSError!) in
if (mail != nil) {
print("GOT MAIL: \(mail)")
self.gotMail()
}else{
print("MAIL VC ERROR: \(error)")
}
})
println("PRESENT MAIL VC")
self.presentViewController(shareMailVC, animated: true, completion: nil)
}else{
println("User not logged in")
}
}
func gotMail(){
var alertController=UIAlertController(title: "Some title", message: "Some message", preferredStyle: UIAlertControllerStyle.Alert)
var okAction=UIAlertAction(title:"Yes", style: UIAlertActionStyle.Default) {
UIAlertAction in
//some action
}
var cancelAction=UIAlertAction(title:"No", style: UIAlertActionStyle.Cancel){
UIAlertAction in
//some action
}
alertController.addAction(okAction)
alertController.addAction(cancelAction)
self.presentViewController(alertController, animated: true, completion: nil)
}
ma ottengo questo errore (credo perché il TWTRShareEmailViewController non è respinto):
Attenzione: tentativo di presentare UIALertController su xViewController cui vista non è nella gerarchia della finestra!
Qualche idea su come dovrei scrivere questo? Come posso sapere quando lo TWTRShareEmailViewController
viene rimosso per continuare la procedura di registrazione ed essere in grado di presentare il mio UIAlertController
? Non sono a conoscenza di un metodo delegato relativo a TWTRShareEmailViewController
.
Qualsiasi aiuto è apprezzato. Grazie.
Hai trovato una soluzione migliore per questo problema? Sto anche usando dispatch_async –
Come ho spiegato nella mia risposta modificata, ho un VC speciale per le cose di Twitter. Quindi, quando l'utente vuole accedere con Twitter, io presento modamente il mio "TWLoginVC" dove tutto è fatto (evitando comportamenti strani in alcuni casi, con transizioni speciali tra VC per esempio). Ma ho cambiato il mio codice un po 'e non ho più bisogno di presentare un UIAlertController. Quindi non mi dispiace non ho una soluzione migliore:/ –
Con il nuovo TwitterKit (l'ho appena aggiornato alla 2.0).2), il modo per richiedere l'e-mail degli utenti è cambiato. È spiegato nel documento Twitter: https://docs.fabric.io/ios/twitter/request-user-email-address.html. –