在基于导航的应用程序中,initWithNibName方法不会调用/fire
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}我在appdelegate中定义了rootViewController (calViewController),如下所示
calViewController *objCalViewController = (calViewController *) [navController topViewController];
objCalViewController.context = [self managedObjectContext];
[window addSubview:navController.view];
[window makeKeyAndVisible];这就是问题所在吗?请帮我个忙
发布于 2012-02-08 18:15:49
在你的appdelegate.m中,这样做
calViewController *objCalViewController = [[calViewController alloc] initWithNibName:@"WebViewController_iPhone" bundle:nil];
objCalViewController.managedObjectContext = self.managedObjectContext;
navController = [[UINavigationController alloc] initWithRootViewController:objCalViewController];
[self.window setRootViewController:navController];
[window makeKeyAndVisible];发布于 2012-02-08 18:14:51
在nib文件或故事板(通常作为IBOutlet)中定义UIViewController时,不会调用initWithNibName:bundle:,而是调用initWithCoder:。当您使用界面生成器将UIViewController设置为UITabBarController或UINavigationController的一部分时,以及在使用情节提要时,几乎总是会出现这种情况。
发布于 2012-02-08 18:26:05
好的,假设我有一个名为TCViewController的viewController,
TCViewController.h, TCViewController.m and TCViewController.xib在TCViewController.m中,我重写了下面的方法。
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}在我的RootViewController中,我想像这样初始化TCViewController
RootViewController.m
-(void)viewDidLoad //not necessarily this one, can be any method
{
// This initialization calls the initWithNibname method implemented in TCViewController.m
TCViewController *viewController = [[TCViewController alloc] initWithNibName:@"TCViewController" bundle:nil];
[self.navigationController pushViewController:viewController animated:YES];
}如果你像这样初始化一个viewController,如果你已经实现了它,控制将会传递给你的子类中的initWithNibName方法。
https://stackoverflow.com/questions/9191142
复制相似问题