我正在制作一个 iPad 应用程序,其中包含一个用于设置选项的 View 。 这个“选项” View 有两个容器 View ,每个容器 View 都包含一个 TableView,其中包含两种不同的选项,并且可以切换以打开或关闭这些选项。 问题是,当我尝试从我的主 ViewController 创建一个将打开选项 View 的按钮时,我收到以下错误:
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],因为我不希望我的选项 View 是 TableView - 表在容器 View 中。
我正在使用不同的 Storyboard ,并转至 Storyboard 引用,以模态方式呈现选项 View 。我尝试删除按钮、转场和 Storyboard 引用,用新的替换它们,并重命名我的 ViewController.swift 文件以及对它的所有引用,但没有成功
我也试过在网站上寻找其他解决方案,但我没有运气,我开始担心这可能是因为 containerViews 中的 tableViews ...
我是学习 swift 和 Xcode 的新手,所以请让您的解释简单易懂,并假设我完全无能:-)
最佳答案
我猜你可能添加了一个容器 View ,它会自动将一个“子” View Controller 放置到 Storyboard上,然后简单地将那个子 VC 的类更改为 UITableViewController
--- ,正如您发现的那样,它不起作用。
要将 TableView Controller 用作 subview ,请添加您的容器 View ,然后将普通的 UITableViewController
添加到 Storyboard。然后,按住 Ctrl 键从容器 View 拖动到新的 TableView Controller ,然后从弹出菜单中选择 Embed
。
关于ios - 在尝试呈现 UIViewController(而不是 UITableViewController)时如何避免使用 [UITableViewController loadView],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53270764/