2014-07-08 14 views
17

Sto provando a caricare uno specifico ViewController dall'app delegato in rapido quando un utente fa clic su UILocalNotification. Ho capito che questo è chiamato in questa funzione:Ottieni istanza di ViewController da AppDelegate in Swift

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

Ma quando provo e l'accesso una delle ViewControllers aperti penso che sia il ritorno nullo perché la mia applicazione si blocca. Ecco cosa sto cercando:

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() 

Si blocca sulla linea popToViewController.

risposta

23

Si potrebbe provare:

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) 
+0

Ho provato ad utilizzare questo all'interno di una funzione e non ha funzionato, sto usando xcode7 e swift2. ti dispiace aggiornare il codice qui sopra per favore. – suisied

+0

@sued Potrebbe essere utile creare una domanda su StackOverflow e collegarla perché non è possibile diagnosticare il problema senza visualizzare il codice. – fuzz

+0

non funziona in swift 2 .. impossibile ottenere lo storyboard "Principale". –

Problemi correlati