【问题标题】:Issues Using .xib With Storyboard将 .xib 与 Storyboard 一起使用的问题
【发布时间】:2013-05-12 22:50:31
【问题描述】:

嘿,我正在尝试打开一个使用 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”笔尖,但未设置视图出口。'

【问题讨论】:

    标签: iphone ios storyboard xib


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        将 .xib 中的 File's Owner 设置为视图控制器的类(可能称为 PeekPagedScrollViewController)。

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

        【讨论】:

          猜你喜欢
          • 2021-12-28
          • 2015-04-29
          • 2013-11-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-05-29
          • 2015-01-28
          相关资源
          最近更新 更多