问题
Regardless on which controller type (UIViewController
, UITableViewController
), the following line always yields null
in the ViewDidLoad
method:
this.View.Window
Is this behavior normal, or am I doing something odd? What could lead to UIViewController.View.Window
being null
?
(I suppose this question concerns not only MonoTouch, but also 'normal' Objective-C Cocoa).
(MonoTouch 5.2.11, XCode 4.2.1 4D502)
回答1:
According to the documentation of UIView, the window
property is nil
if the view has not yet been added to a window which is the case when viewDidLoad
is called.
回答2:
Instead of self.view.window
use
[(YourAppDelegate *)[[UIApplication sharedApplication] delegate] window]
回答3:
you can call it like:- In ViewDidAppear
override func viewDidAppear(_ animated: Bool) {
print(self.view.window)
let vc = self.storyboard?.instantiateViewController(identifier: "SecondViewController") as? SecondViewController
self.view.window?.rootViewController = vc
}
来源:https://stackoverflow.com/questions/10278204/uiviewcontroller-view-window-is-null-in-viewdidload-method