2014-11-23 12 views
6

muszę przedstawić widok kontrolera z AppDelegate, więc napisałem następujący kod:Dlaczego okno jest zerowa w AppDelegate

let storyboard = UIStoryboard(name: "Main", bundle: nil) 
let authViewController = storyboard.instantiateViewControllerWithIdentifier("ViewController") as ViewController 
if let keyWindow = UIApplication.sharedApplication().keyWindow { 
    keyWindow.rootViewController = authViewController 
} 

Niestety window i keyWindow są zarówno nil. Czemu?

+1

Kiedy wykonywany jest ten kod? – jrturton

+0

@jrturton To jest kod wykonywany w aplikacji 'func (application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Funkcja Bool'A – FrozenHeart

+0

OK, w tej funkcji twoja aplikacja nie będzie miała okna, chyba że" zrobiłem jeden ręcznie lub ustawiłeś storyboard lub Xib jako interfejs uruchamiania. Zrobiłeś to? – jrturton

Odpowiedz

24

Musisz utworzyć okno siebie, jeśli nie za pomocą głównego opcję interfejsu:

window = UIWindow(frame:UIScreen.mainScreen().bounds) 

Swift 3,0

self.window = UIWindow(frame: UIScreen.main.bounds) 

Następnie zadzwonić kod powyżej, stosując window.

Na koniec zadzwoń pod numer makeKeyAndVisible() w oknie.

+2

Nie chcę automatycznie ładować początkowego kontrolera widoku, ponieważ muszę przedstawić albo kontroler widoku autoryzacji albo główny kontroler widoku ręcznie – FrozenHeart

+0

Cóż, nie było to jasne z twojego pytania! Aktualizacja nadchodzi ... – jrturton

+0

Masz rację, przepraszam za to – FrozenHeart

Powiązane problemy