【发布时间】:2013-12-15 22:15:54
【问题描述】:
之前我创建了一个名为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。
我已尝试清理我的项目并再次编译,但此错误仍然存在。帮忙?
【问题讨论】:
-
你试过删除 ~/Library/Developer/Xcode/DerivedData 目录吗?
-
您可能需要清理和构建,重置您的模拟器并删除派生的数据文件夹,然后才能使用。我有一个类似的问题,我以同样的方式解决了。 (我假设您没有在
init方法中引用笔尖。) -
谢谢大家,我正在尝试您的建议。但是,是的,我加倍检查,并没有以暗示它来自笔尖的方式引用我的视图控制器。编辑 - 删除派生的数据目录并进行干净的构建并没有成功。看来我要重启手机了……
-
好的,伙计们,设法解决了它。我不太确定做了什么,所以我会写下我的答案,添加你的步骤和所有内容。现在我的应用程序由于不同的原因崩溃了,哈哈。但我想这是进步。
标签: ios objective-c uiviewcontroller xib uistoryboard