0

嘿,我正在尝试打开一个使用 xib 接口文件设计的视图控制器。我正在使用以下代码行从创建为情节提要组件的视图控制器中生成控制器。

YourViewController *viewController [[YourViewControlleralloc] initWithNibName:@"ViewControllerName" bundle:nil];

[self presentViewController:viewController animated:YES completion:nil]; 

我以前从未使用 .xib 设置视图控制器,也从未通过情节提要链接到一个视图控制器,因此任何事情都可能出错。这是我尝试呈现视图时遇到的错误。

2013-05-17 13:06:45.120 Coffee[8991:907] *由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:'-[UIViewController _loadViewFromNibNamed:bundle:] 加载了“PeekPagedScrollViewController”笔尖,但视图出口没有放。'

4

3 回答 3

1

将 .xib 中的文件所有者设置为视图控制器的类(可能称为 PeekPagedScrollViewController)。

然后将其view插座连接到 .xib 文件中的主视图。

于 2013-05-17T17:18:22.387 回答
0

将 Storyboard 视图控制器自定义类设置为您的类名(您的 xib 也引用的那个),然后在同一个类中,只需覆盖initWithCoder

- (id)initWithCoder:(NSCoder *)aDecoder
{
    self = [[super initWithCoder:aDecoder] initWithNibName:@"YourCustomViewControllerXibsName" bundle:nil];
    if( self ) {
    }
    return self;
}

这将使您能够在 Storyboard 中设计布局和转场,但在独立的 nib 文件中设计布局。

Storyboard 将处理实例化,但当initWithCoder:被调用时,initWithNibName:将是self通过 xib 实例化的方法。

于 2013-05-30T14:38:56.940 回答
0

它已正确连接我刚刚忘记声明一个 initWithNibName 方法,因此当我从情节提要中调用它时它崩溃了。愚蠢的错误,但感谢所有伟大的反馈@matt

于 2013-05-27T15:31:50.887 回答