viewDidLoad 没有触发

viewDidLoad not firing

全部,
我正在从我的 applicationDidFinishLaunching 方法创建一个 windowController...

(void)applicationDidFinishLaunching:(NSNotification *)aNotification {
   myWC = [[myWindowController alloc] initWithWindowNibName:@"myWindowControllerName"];

   [myWC showWindow:self];
}

此时,方法windowDidLoad被调用。从那里,我调用方法来加载 viewController...

(void)windowDidLoad {
    [super windowDidLoad];

    homeScreenVC = [[HomeScreen alloc] initWithNibName:@"HomeScreen" bundle:nil];

    [baseView addSubview:[homeScreenVC view]];
}

视图出现时,viewDidLoad 方法没有被调用。我尝试了 viewDidAppear,但也没有调用它。我还尝试在加载 window 后立即加载 viewController ,但这也没有用。有任何想法吗?

如有任何帮助,我们将不胜感激。谢谢。

对于OSX你应该使用loadView


编辑: 您可以从 appDelegate:

加载您的节目 homeScreenVC
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification{
    homeScreenVC = [[HomeScreen alloc] initWithNibName:@"HomeScreen" bundle:nil];
    [self.window.contentView addSubview:self.homeViewController.view];
    homeScreenVC.view.frame = ((NSView*)self.window.contentView).bounds;
}

不要在此处加载视图,加载视图时会调用此方法

-(void)loadView{
    [super loadView];
    //anything you want to do when home screen is presented
}

For OSX, viewDidLoad, viewWillAppear 等被调用。他们只是没有要求我使用 WebView 控件但不包括 WebKit 框架的 viewController。所以,添加框架后,这些方法又开始正常调用了。