2016-07-15 4 views
0

Also ich versuche, alle Registerkartenansichten von der App Delegate vorab zu laden, um Zeit beim Laden zu sparen, sobald der Benutzer zwischen Tabs wechselt.Swift - Preload anderen Tab Ansichten von App Delegate

Ich habe versucht, dies in der Datei view controller für den UITabBarController (speziell in der viewDidLoad) laufen jedoch hatte kein Glück. Fehle ich etwas?

let this = self.view 
if let viewControllers = self.viewControllers { 
     for viewController in viewControllers { 
      let this = viewController.view 
     } 
} 
+0

Gute Idee über das Laden der Ansichten, aber ich glaube nicht, dass der Versuch, die ViewController-Ansicht zu bekommen, es laden wird. Ich schlage vor, den Code zu nehmen, der eine Weile dauern wird (z. B. Herunterladen von Daten) und das in Ihr AppDelegate einfügt. Einfache Dinge wie das Setzen des Titels eines Labels usw. werden nicht lange dauern. – penatheboss

+0

Hmm ok ... es lädt eine lokale html-Datei in eine Webansicht und es gibt eine merkbare Verzögerung aufgrund von Audiodateien, die im HTML verlinkt sind. – dwinnbrown

Antwort

0

Versuchen Sie, Ihre View-Controller instanziieren ...

Erste set the storyboard id of your view controller

Dann:

let storyboard = UIStoryboard(name: "Main", bundle: nil) 
let vc = storyboard.instantiateViewControllerWithIdentifier("someViewController") 

Hinweis: ist es möglich, dass, wenn Sie den Code in der App setzen Delegate konnte der View-Controller deinstalliert werden. Wenn dies der Fall ist, versuchen Sie, den Code in Ihrem ersten View-Controller zu platzieren.

Verwandte Themen