【问题标题】:iOS Framework - Loaded the nib but the view outlet was not setiOS 框架 - 已加载 nib 但未设置视图出口
【发布时间】:2015-06-16 20:50:25
【问题描述】:

我看到了许多与我类似的问题,但没有解决方案,这可能是因为我正在创建一个 iOS 框架,然后将其导入到项目中。

基本上,我有一个 SignIn 框架,如果用户未登录,我想显示一个 webview。

我的正常项目会调用我的框架,如果我需要进行身份验证,SignIn 框架会告诉我加载某个 .xib 以登录。

在我的框架中,这个 .xib 被命名为 SignIn.xib 它包含一个视图控制器,里面有一个 webview,如您所见:

现在,在我的框架中,我初始化视图控制器并调用委托的函数来加载 signInView:

NSString* const frameworkBundleID  = @"iOSLoginSDK";
NSBundle* bundle = [NSBundle bundleWithIdentifier:frameworkBundleID];

SignInViewController* signInViewController = [[SignInViewController alloc] initWithNibName:@"SignIn" bundle:bundle];

[self.delegate loadSignInView:signInViewController];

在我的项目中,我只需执行以下操作,该方法将由 delagate 调用:

-(void) loadSignInView:(CYMSignInViewController *)signInViewController {
     [self presentViewController:signInViewController animated:YES completion:nil];
}

但是,当我尝试运行应用程序时出现以下错误:

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "SignIn" nib but the view outlet was not set.

我正在使用 XCode 6.3.2

编辑 1:我认为问题的发生是因为我的 xib 中有一个视图控制器。我可以这样做吗?

编辑 2:这是我的 .xib 中的网点

Edit3:我尝试重新创建笔尖,但仍然遇到同样的错误。

这是我做的步骤:

  1. 我创建了一个空的 xib
  2. 我添加了一个视图控制器,然后将我的元素添加到它上面
  3. 我创建了一个视图控制器文件并将其设置为视图控制器的自定义类

我错过了什么吗?

【问题讨论】:

  • 您的 nib 中有一个简单的错误 - 最外面的 UIView 需要连接到 UIViewController 对象的 view 出口。只需选择 UIView 并按住 control 拖动到 UIViewController 对象并选择view outlet
  • 我的最外层,你是指 View Controller,因为那是最外层还是 FileOwner?因为它看起来像,请参阅edit2
  • 您能否添加显示对象层次结构的左侧 NIB 导航器面板的屏幕截图?文件所有者应该是您的 UIViewController 类 SignInViewController - 实际 NIB 组件层次结构中的第一个对象应该是 UIView - 此视图将包含您的工具栏和 UIWebView
  • 我认为这就是我所拥有的:imgur.com/6oE7ViH
  • 从屏幕截图看起来很正确。它看起来像一个非常简单的笔尖 - 也许尝试重新创建它。

标签: ios objective-c xcode xcode6 ios-frameworks


【解决方案1】:

好的,基本上,您似乎不能在独立的 .xib 中拥有视图控制器。我认为是因为 .xib 在某种程度上是一个视图控制器(有人可以澄清一下)。

我所做的是,我创建了一个视图,正确设置了我的设计,然后,我将我的 ViewController 类文件分配给了文件的所有者。这样,它现在可以工作了。

【讨论】:

  • 您应该这样做 - 抱歉,您的屏幕截图中并不清楚您做了什么。您可以使用容器将另一个 UIViewController 添加到视图中,但该 UIViewController 实例通常与其自己的 NIB 或 Storyboard 场景相关联
猜你喜欢
  • 2012-07-23
  • 1970-01-01
  • 1970-01-01
  • 2020-06-07
  • 2014-11-22
  • 1970-01-01
  • 2018-09-03
  • 1970-01-01
  • 2019-06-09
相关资源
最近更新 更多