UIViewController正在加载一个不存在的笔尖

时间:2013-12-15 22:15:55

标签: ios objective-c uiviewcontroller xib uistoryboard

之前我创建了一个名为FTIBTagsActivityViewController的新文件,其中包含一个笔尖。在玩了一段时间后,我决定将用户界面移动到我的主故事板。所以我删除了.xib文件,在我的主故事板中重新创建了UI,给了FTIBTagsActivityViewController类的接口,并尝试使用。

但是,每当我尝试呈现这个视图控制器时:

- (UIViewController *) activityViewController
{
    FTIBTagsActivityViewController *tavc = [[FTIBTagsActivityViewController alloc] init];
    tavc.tags = tagsSplit;
    return tavc;
}

(此代码返回到UIActivityViewController,然后尝试以模态方式呈现它。)

我的应用程序崩溃了。

2013-12-15 18:07:55.982 Mignori[3855:60b] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "FTIBTagsActivityViewController" nib but the view outlet was not set.'

它清楚地说它有一个名为FTIBTagsActivityViewController的笔尖,但这有两个奇怪的问题:

  • 该xib不再存在,其UI已移至我的故事板。
  • 我实际上已经删除了引用FTIBTagsActivityViewController的每个UI元素 - 也就是说,为了测试,我从我的故事板中删除了界面,而且我的应用程序仍在使用此消息崩溃。

我查看了我的项目目录,没有FTIBTagsActivityViewController.xib。它实际上是成功加载了一个不存在的xib。

我已经尝试清理我的项目并再次编译,但此错误仍然存​​在。帮助

3 个答案:

答案 0 :(得分:2)

这是一个奇怪的问题,我按照以下步骤开始工作:

  1. 根据Rocky的建议,清空了Derived Data文件夹(〜/ Library / Developer / Xcode / DerivedData目录?)。
  2. 根据Aaron Brager的建议清理了该项目。
  3. 从手机中删除了该应用。
  4. 重新启动手机。
  5. 再次跑完项目。

答案 1 :(得分:1)

  1. 使用[UIStoryboard storyboardWithName:@“yourstoryboardname”bundle:[NSBundle mainBundle]]创建一个uistoryboard。

  2. 确保您的viewcontroller在您的情节提要中有一个标识符,并将其设置为正确的类

  3. 在1上创建的故事板上调用instantiateViewControllerWithIdentifuer:@“yourId”]。

答案 2 :(得分:0)

使用UIstoryboard类加载viewcontroller。使用alloc init加载一个viewcontroller将使它搜索不在那里的anib。然后,如果你没有实现loadView,就没有视图。