2016-05-09 5 views
0

Ich werde versuchen, mich so klar wie möglich zu machen, aber Englisch ist nicht meine Muttersprache, damit ich für die Unannehmlichkeiten leid tut.anzeigen View-Controller nach Spotlight-Suche

Ich habe diese http://www.appcoda.com/core-spotlight-framework/ verfolgt, um einige meiner App-Funktionen in der Spotlight-Suche zu zeigen, aber ich bin auf dem Teil der Darstellung der View-Controller der einzelnen Feature stecken. Hauptsächlich (glaube ich), weil meine App tabbed ist. Hier ist ein Screenshot von meinem Drehbuch:

storyboard

Also wenn man versucht, diese Methode zu verwenden:

func application(application: UIApplication, continueUserActivity userActivity: NSUserActivity, restorationHandler: ([AnyObject]?) -> Void) -> Bool { 
    let viewController = (window?.rootViewController as! UINavigationController).viewControllers[0] as! consultaCorralones 
    viewController.restoreUserActivityState(userActivity) 

    return true 
} 

(consultaCorralones ist die View-Controller Ich möchte zeigen)

Wenn ich es laufen Ich erhalte den Fehler:

Could not cast value of type 'UITabBarController' (0x11041d5d8) to 'UINavigationController' (0x11041d588).

Mein begrenzter Swift Wissen sagt mir UINavigationController zu UITabBarController zu ändern, aber dabei so erhalte ich:

Could not cast value of type 'UINavigationController' (0x1117b8588) to 'Parcial2.consultaCorralones' (0x10fb83200).

Ich habe auch versucht Perform Segue from App Delegate swift folgenden, aber das hat nicht funktioniert.

Jede Hilfe wird sehr geschätzt.

+0

Versuchen 'lassen Viewcontroller = (Fenster? .rootViewController wie! UITabBarController) .selectedViewController wie! consultaCorralones' –

+0

Danke, aber es hält den gleichen Fehler zeigt 'kann nicht Wert vom Typ gegossen‚UINavigationController‘(0x1022f6588) auf‚Parcial2.consultaCorralones‘(0x1006c1200) .' –

+0

Ich versuche, Ihre Ansicht Hierarchie zu erraten; versuchen 'lassen Viewcontroller = ((Fenster? .rootViewController wie! UITabBarController) .selectedViewController wie! UINavigationController) .topViewController wie! consultaCorralones' –

Antwort

0

UIApplication.sharedApplication().keyWindow?.rootViewController gibt ein UITabBarController. Sie müssen selectedViewController von ihm erhalten. Das wird eine UINavigationController Instanz sein.

func application(application: UIApplication, continueUserActivity userActivity: NSUserActivity, restorationHandler: ([AnyObject]?) -> Void) -> Bool { 
    let controller = UIApplication.sharedApplication().keyWindow?.rootViewController as! UITabBarController 
    let navController = controller.selectedViewController as? UINavigationController 
    let viewController = navController?.viewControllers[0] as! consultaCorralones 
    viewController.restoreUserActivityState(userActivity) 
    return true 
} 

Ich hoffe, es hat geholfen.

Verwandte Themen