iOS Framework - 加载了笔尖但未设置视图插座

时间:2015-06-16 20:50:26

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

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

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

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

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

enter image description here

现在,在我的框架中,我初始化视图控制器并调用委托的函数来加载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

中的插座

enter image description here

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

以下是我所做的步骤:

  1. 我创建了一个空的xib
  2. 我添加了一个视图控制器,然后我将元素添加到其中
  3. 我创建了一个视图控制器文件,并将其设置为视图控制器的自定义类
  4. 我在这里错过了什么吗?

1 个答案:

答案 0 :(得分:0)

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

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