我看到许多类似于我的问题,但没有解决方案有效,这可能是因为我正在创建然后将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:我试图重新创建笔尖,但我仍然得到同样的错误。
以下是我所做的步骤:
我在这里错过了什么吗?
答案 0 :(得分:0)
好的,基本上,似乎你不能在一个独立的.xib中拥有一个视图控制器。我认为因为.xib在某种程度上是一个视图控制器(有人可以澄清)。
我做的是,我创建了一个视图,正确设置了我的设计然后,我将我的ViewController类文件分配给了文件的所有者。这样,它现在正在运作。