Comment présenter UIAlertView depuis appDelegate
J'essaie d'afficher une UIAlertView de l'appDelegate dans
didReceiveRemoteNotification
lorsque l'application de recevoir une notification push.
J'ai cette erreur :
Warning: Attempt to present <UIAlertController: 0x14c5494c0> on <UINavigationController:
0x14c60ce00> whose view is not in the window hierarchy!
voici mon code :
func application(application: UIApplication, didReceiveRemoteNotification userInfo: NSDictionary) {
var contentPush: NSDictionary = userInfo.objectForKey("aps") as NSDictionary
var message = contentPush.objectForKey("alert") as String
let alertController = UIAlertController(title: "Default Style", message: message, preferredStyle: .Alert)
let cancelAction = UIAlertAction(title: "Cancel", style: .Cancel) { (action) in
//...
}
alertController.addAction(cancelAction)
let OKAction = UIAlertAction(title: "OK", style: .Default) { (action) in
let photoPushedVc = self.storyboard.instantiateViewControllerWithIdentifier("CommentTableViewController") as CommentTableViewController
println("the fetched post is \(post)")
photoPushedVc.post = post
let activeVc = UIApplication.sharedApplication().keyWindow?.rootViewController
activeVc?.presentViewController(photoPushedVc, animated: true, completion: nil)
}
alertController.addAction(OKAction)
let activeVc = UIApplication.sharedApplication().keyWindow?.rootViewController
activeVc?.presentViewController(alertController, animated: true, completion: nil)}
source d'informationauteur jmcastel
Vous devez vous connecter pour publier un commentaire.
Pour générer AlertController Boîte de Dialogue de AppDelegate à l'aide de Objective-C,
De Type 1
De Type 2
Les deux sont testé et fonctionne bien.
Ok j'ai finalement obtenu, vous avez besoin de trouver de l'actif VC à l'aide de cette avant d'essayer de présenter votre alertController :
Voici la mienne Swift 3.0 exemple
Espère que cela aide à quelqu'un
Si vous avez besoin de le même en Objective-c
Si vous avez de la navigation en fonction de l'application:
Si vous avez vue unique application basée sur:
comment je l'ai fait
Exemple D'Utilisation
Exemple De Téléchargement Avec Le Code Source
Pour afficher une alerte sur le haut du contrôleur à partir de l'app délégué
Ajouter une extension dans UIAlertController
- Je utiliser un UIViewController extension pour obtenir le courant visible-vue-contrôleur (voir: Comment obtenir visibles viewController de délégué d'application lors de l'utilisation de storyboard?).
et de présenter l'alerte contrôleur: