3

所以我对这个故事板概念很陌生。我有一个视图笔尖放入情节提要中,每个笔尖都对应于我拥有的 UIViewController 子类,我尝试使用以下代码加载笔尖文件:

TestViewController *vc = [[TestViewController alloc] initWithNibName:@"TestViewController" bundle:nil];
    [self.view setBackgroundColor:[UIColor blueColor]];
    [self.view setFrame:CGRectMake(0, self.profilePicture_.frameHeight + self.profilePicture_.frameY + 10, self.scrollView_.frameWidth, 100)];
    [self.view addSubview:vc.view];

但是,它给了我以下错误:

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: 'NSBundle </Users/aditya15417/Library/Application Support/iPhone Simulator/5.1/Applications/64E6CEC9-E6DC-4AF5-BF16-11BFB6415BDC/Pulse.app> (loaded)' with name 'TestViewController''

所以问题是,如果我在故事板上有我的笔尖,是否不能使用 initWithNibName?如果有办法,我该怎么做?

4

4 回答 4

7

请用

[self.storyboard instantiateViewControllerWithIdentifier:@"some identifier you set in IB"];
于 2012-06-04T19:09:30.823 回答
0

为什么将 PNRNewsfeedViewController 加载为 TestViewController?TestViewController 是 PNRNewsfeedViewController 的基类吗?确保在 nib 中,将 File's Owner 自定义类设置为 PNRNewsfeedViewController,然后分配一个新闻提要视图控制器:

PNRNewsfeedViewController *vc = [[PNRNewsfeedViewController alloc] initWithNibName:@"PNRNewsfeedViewController" bundle:nil];
// ...
于 2012-06-04T17:46:39.187 回答
0

当您使用故事板时,您不会直接使用单个 nib,也不会自己实例化视图控制器。您可以使用UIStoryboard该类从情节提要中实例化视图控制器,如文档中所述

于 2012-06-04T17:54:19.497 回答
0

这就是我这样做的方式:

UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:[NSBundle mainBundle]];
于 2014-04-07T20:33:58.193 回答