Obtener Instancia De ViewController De AppDelegate En Swift

Estoy tratando de cargar un determinado ViewController de la aplicación delegado en swift cuando un usuario hace clic en un UILocalNotification. Me he dado cuenta de que este es llamado en esta función:

func application(application: UIApplication!, didReceiveLocalNotification notification: UILocalNotification!)

Pero cuando intento acceder a uno de los ViewControllers creo que es devolver nulo debido a que mi aplicación se bloquea. Aquí es lo que estoy tratando de:

var rootViewController = self.window!.rootViewController
var storyBoard = rootViewController.storyboard
var setViewController = storyBoard.instantiateViewControllerWithIdentifier("CurrentShows") as ViewController_CurrentShows

rootViewController.navigationController.popToViewController(setViewController, animated: false)
setViewController.reloadData()

Es de estrellarse en el popToViewController línea.

InformationsquelleAutor PretzelJesus | 2014-07-08

1 Kommentar

  1. 26

    Puedes intentar:

    let rootViewController = self.window!.rootViewController
    let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
    let setViewController = mainStoryboard.instantiateViewControllerWithIdentifier("CurrentShows") as! DetailViewController
    rootViewController?.navigationController?.popToViewController(setViewController, animated: false)

    Swift 3:

    let mainStoryboard = UIStoryboard(name: "Main", bundle: nil)
    let controller = mainStoryboard.instantiateViewController(withIdentifier: "viewController")
    self.present(viewController, animated: true, completion: nil)
    • He intentado utilizar esta dentro de una función y no funciona, estoy usando xcode7 y swift2. ¿te importaría actualizar el código de arriba, por favor.
    • Podría ser vale la pena crear una pregunta en StackOverflow y vincular a ella como que realmente no puede diagnosticar el problema sin ver el código.
    • no trabajo en swift 2.. imposible llegar «Principal» storyboard.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea