我正在尝试创建一个包含3个单元格的表的应用程序
我想扩展UITableViewController而不是UIViewController,所以我提出了
//
// TodoListTableViewController.swift
// ListHue
//
// Copyright © 2018 LR Web Design. All rights reserved.
//
import UIKit
class TodoListTableViewController: UITableViewController {
let items = ["Find Mike", "Buy Eggos", "Kill Demogorgon"]
// viewDidLoad
override func viewDidLoad() {
super.viewDidLoad()
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return items.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "ToDoItemCell", for: indexPath)
cell.textLabel?.text = items[indexPath.row]
return cell
}
}
启动我的应用程序时不断出现此错误
2018-08-01 09:26:53.151150-0400 ListHue[4673:207209] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UITableViewController loadView] loaded the "r5i-1Z-XpF-view-oGI-0m-9XK" nib but didn't get a UITableView.'
“连接”标签
这是我的全部内容的屏幕截图
如何进一步调试呢?
答案 0 :(得分:3)
问题是您将表拖动到UIViewController
实例,但是必须从对象库中拖动UITableViewController
,
tableViewController的根视图应该是UITableView
,而不是UIView
,例如UIViewController
答案 1 :(得分:1)
好吧,实际上UITableViewController
期望其'view'属性为UITableView
类型。在情节提要中创建一个最简单的方法是使用集合中的相应对象(右下角的面板)。就您而言,您似乎是从集合中提取了UIViewController
,然后在其上添加了UITableView
。
所以您现在有两个选择:
Table view controller
view
属性。并且在这种情况下,请不要忘记也要连接表视图的委托和数据源