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。所以,添加框架后,这些方法又开始正常调用了。
全部,
我正在从我的 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。所以,添加框架后,这些方法又开始正常调用了。