20

无论在哪种控制器类型 ( UIViewController, UITableViewController) 上,以下行始终nullViewDidLoad方法中产生:

this.View.Window

这种行为是正常的,还是我在做一些奇怪的事情?什么会导致UIViewController.View.Window存在null

(我想这个问题不仅涉及 MonoTouch,还涉及“正常”的 Objective-C Cocoa)。

(MonoTouch 5.2.11, Xcode 4.2.1 4D502)

4

3 回答 3

32

根据UIView的文档,该window属性是nil视图是否尚未添加到窗口中,viewDidLoad即调用时的情况。

于 2012-04-23T09:52:25.113 回答
5

而不是self.view.window使用

[(YourAppDelegate *)[[UIApplication sharedApplication] delegate] window]
于 2013-10-23T17:02:50.190 回答
5

self.view.window将在viewDidAppear中可用:

override func viewDidAppear(_ animated: Bool) {
    print(self.view.window)
    let vc = self.storyboard?.instantiateViewController(identifier: "SecondViewController") as? SecondViewController
    self.view.window?.rootViewController = vc
}
于 2020-01-17T12:40:05.060 回答