全部,
我正在从我的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,但也没有调用。我也尝试在加载窗口后立即加载viewController,但也没有用。有任何想法吗?
任何帮助将不胜感激。谢谢。
答案 0 :(得分:2)
对于OSX您应该使用loadView
编辑:
您可以从homeScreenVC
加载展示appDelegate
:
- (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
}
答案 1 :(得分:0)
对于 OSX , viewDidLoad , viewWillAppear 等进行调用。他们只是没有要求我使用viewController,我在那里使用WebView控件,但没有包含WebKit框架。因此,在添加框架后,这些方法再次开始调用就好了。