尝试显示UIViewController(而不是UITableViewController)时,如何避免使用[UITableViewController loadView]

时间:2018-11-12 22:03:49

标签: ios swift uitableview segue uicontainerview

我正在制作一个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还是很陌生,所以请保持您的解释简单易懂,并假设我完全不称职:-)

1 个答案:

答案 0 :(得分:0)

我猜您可能添加了一个容器视图,该容器视图会自动将一个“子”视图控制器放置到情节提要上,然后只需将该子VC的类更改为console.log(String.raw`C:\Program Files\WindowsPowerShell`) ---发现,不起作用。

要将表视图控制器用作子级,请添加您的容器视图,然后向情节提要中添加普通的UITableViewController。然后,按住Ctrl键将其从“容器视图”拖动到新的表格视图控制器,然后从弹出菜单中选择UITableViewController