嘿我正在尝试打开使用xib接口文件设计的视图控制器。我使用以下代码行从创建为故事板组件的视图控制器中生成控制器。
YourViewController *viewController [[YourViewControlleralloc] initWithNibName:@"ViewControllerName" bundle:nil];
[self presentViewController:viewController animated:YES completion:nil];
我之前从未设置过.xib的视图控制器,也没有通过故事板链接到一个视图控制器,所以任何事情都可能出错。这是我尝试呈现视图时遇到的错误。
2013-05-17 13:06:45.120咖啡[8991:907] * 终止应用程序 未捕获的异常'NSInternalInconsistencyException',原因: ' - [UIViewController _loadViewFromNibNamed:bundle:]加载了 “PeekPagedScrollViewController”笔尖但未设置视图插座。'
答案 0 :(得分:1)
将.xib中的文件所有者设置为视图控制器的类(可能称为PeekPagedScrollViewController)。
然后将其view
出口连接到.xib文件中的主视图。
答案 1 :(得分:0)
它已正确连接我刚忘记声明initWithNibName方法,因此当我从storyboard中调用它时它崩溃了。愚蠢的错误,但感谢所有伟大的反馈@matt
答案 2 :(得分:0)
将Storyboard视图控制器自定义类设置为您的类名(您的xib也引用的那个),然后在同一个类中,只需使用以下代码覆盖initWithCoder
:
- (id)initWithCoder:(NSCoder *)aDecoder
{
self = [[super initWithCoder:aDecoder] initWithNibName:@"YourCustomViewControllerXibsName" bundle:nil];
if( self ) {
}
return self;
}
这将使您能够在Storyboard中设计布局和segue过渡,但在独立的nib文件中设计您的布局。
Storyboard将处理实例化,但是当调用initWithCoder:
时,initWithNibName:
将是通过xib实例化self
的方法。