在 UIViewController 上使用 UITableView

Posted

技术标签:

【中文标题】在 UIViewController 上使用 UITableView【英文标题】:Using a UITableView on a UIViewController 【发布时间】:2013-12-06 09:34:21 【问题描述】:

我首先在 Xcode storyboard 中创建了一个 UITableViewController(显然上面有一个 UITableView)但是因为我还想要一个 UIButton 和同一页面上的分段控件,所以我用 @ 替换了视图987654326@ 和 UIView 然后在上面放一个 UITableView 并将我已经定义的 (static) 表格单元格移到其中。

但是在尝试编译时出现错误:

.../iPhone.storyboard: Exception while running ibtool: *** setObjectForKey: object cannot be nil (key: objectID)

有人知道这里出了什么问题吗?

【问题讨论】:

我觉得你的数据源可能是nil...那就是某个索引里没有数据...能不能把你的tableview创建代码放上来 检查数据源和委托已设置。如果设置是真正的调用? 这对我有用:***.com/questions/19730440/… 【参考方案1】:

您只能将静态单元格与 UITableViewController 一起使用。

【讨论】:

【参考方案2】:

静态单元格只能与 UITableViewController 一起使用。禁用“Accessibility”选项并再次尝试构建。参考这个UISwitch in static UITableViewCell generates error 了解更多信息

【讨论】:

在哪里禁用 tableview 的辅助功能?更重要的是:为 UIView 嵌入的 tableview 定义一个自定义控制器类肯定是可能的,是吗? 我看到辅助功能在身份检查器中。好吧,UITableView 没有显示这样的选项,并且对于 UIView 和表格单元格,它们已经被禁用了。 我认为这里需要的是这个:***.com/questions/19730440/… 请忽略“辅助功能”选项,我认为它适用于 uiswitch。尝试将 UITableViewController 用于静态单元格,取一个 viewController 并将 tableviewcontroller 添加到该 viewcontroller 的另一个视图中。 是的,看我之前的评论。毕竟这是解决方案。使用容器嵌入 tableview 控制器,以便 table 可以使用控制器。【参考方案3】:

如果您可以放置​​一些代码示例来看看发生了什么,那将会很有帮助,因为从理论上讲,您做的一切都是正确的!

你一定忘记了一些变量或什么,什么是零。检查 Storyboard 和 ViewController.m 之间的接线,这可能是个问题。

【讨论】:

以上是关于在 UIViewController 上使用 UITableView的主要内容,如果未能解决你的问题,请参考以下文章

从父 UIViewController 类继承 UI 组件?

将 UIViewController 的 UI 扩展到子 UIViewControllers

如何将 UI 元素保留在 UIViewController 及其呈现的 ViewController 之上?

从 swiftUI 中的一个嵌入式 UIViewController 导航到 swift UI 中的另一个嵌入式 UIViewcontroller

如何在 Xcode 的 UITest 中访问当前的 UIViewController?

设计一个 XIB 并在不同的 UIViewController 中重用它