Hier ist der Code, den ich habe. Ich habe ein paar verschiedene Ansätze ausprobiert und einige von ihnen gibt mir den Fehler, dass die Ansicht nicht in der Hierarchie ist.Ich habe mehrere Storyboards. Wie kann ich mit AppDelegate einen anderen ViewController in einem anderen Storyboard öffnen? (Segue)
Der Code-Schnipsel geht unten in der richtigen sonst aber können die Segue oder presentViewController nicht durchführen
func applicationDidTimout(notification: NSNotification) {
if let vc = self.window?.rootViewController as? UINavigationController {
if let myTableViewController = vc.visibleViewController as? AccountsOverviewViewController {
// Call a function defined in your view controller.
myTableViewController.signOffUser()
} else {
// We are not on the main view controller. Here, you could segue to the desired class.
let storyboard = UIStoryboard(name: "Accounts", bundle: nil)
let vc = storyboard.instantiateViewControllerWithIdentifier("AccountsNavigationController") as UIViewController
let vc2 = getVisibleViewController(nil)
vc2?.presentViewController(vc, animated: true, completion: nil)
}
}
}
func getVisibleViewController(var rootViewController: UIViewController?) -> UIViewController? {
if rootViewController == nil {
rootViewController = UIApplication.sharedApplication().keyWindow?.rootViewController
}
if rootViewController?.presentedViewController == nil {
return rootViewController
}
if let presented = rootViewController?.presentedViewController {
if presented.isKindOfClass(UINavigationController) {
let navigationController = presented as! UINavigationController
return navigationController.viewControllers.last!
}
if presented.isKindOfClass(UITabBarController) {
let tabBarController = presented as! UITabBarController
return tabBarController.selectedViewController!
}
return getVisibleViewController(presented)
}
return nil
}
Storyboard-Referenzen, sie sind Objekte auf der rechten Seite wie UILabel und Sie können segues verbinden oder sie von Code –