【发布时间】:2019-04-15 16:21:44
【问题描述】:
我正在制作一个 iPad 应用程序,其中包含一个用于设置选项的视图。 这个“选项”视图有两个容器视图,每个视图都包含一个 TableView,其中包含两种不同的选项,并切换以打开或关闭这些选项。 问题是,当我尝试从我的主 ViewController 中创建一个将打开选项视图的按钮时,我收到以下错误:
Screenshot of signal SIGABRT error
在输出中使用这个:
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UITableViewController loadView] instantiated view controller with identifier "UIViewController-c2d-Su-6Id" from storyboard "Options", but didn't get a UITableView.'
我不知道为什么要使用底层函数 [UITableViewController loadView],因为我不希望我的 Options-view 是 TableView - 表在容器视图中。
我正在使用不同的故事板,并使用故事板参考来以模态方式呈现选项视图。我尝试删除按钮、segue 和 Storyboard 引用,用新的替换它们,并重命名我的 ViewController.swift 文件以及对它的所有引用,但没有成功
我也尝试在网站上寻找其他解决方案,但我没有运气,我开始担心这可能是因为 containerViews 中的 tableViews...
我对学习 swift 和 Xcode 还很陌生,所以请保持你的解释简单易懂,并假设我完全无能:-)
【问题讨论】:
-
当您在情节提要中为选项屏幕制作场景时,您是拖出常规视图控制器还是表格视图控制器?更重要的是,选项视图控制器的身份是什么?您收到的消息看起来很像您在身份检查器的 Class 字段中仍然有
UITableViewController的表格视图控制器。 -
错误提示您有一个视图控制器,它是
UITableViewController或其子类,但该场景的根视图不是UITableView -
我的 Options ViewController 有 StoryboardID 'OptionViewWithTableViews' 并且没有 RestorationID。
标签: ios swift uitableview segue uicontainerview