为什么我的表格视图中的单元格不显示任何文本?
我一直在通过关于为iOS创建待办事项列表应用程序的在线教程,但我注意到本教程使用了Swift过时的版本(链接:https://www.raywenderlich.com/77974/making-a-gesture-driven-to-do-list-app-like-clear-in-swift-part-1)。我试图根据新标准更正代码,但是当我构建并运行应用程序时,它只显示一个空表格:没有文字可见。为什么我的表格视图中的单元格不显示任何文本?
我在下面粘贴了我的代码。它包含几个我用来调试的打印语句,但只有第一个(“hello world”)似乎运行。任何投入将不胜感激。谢谢!
import UIKit
class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
@IBOutlet weak var tableView: UITableView!
var toDoItems = [ToDoItem]()
override func viewDidLoad() {
toDoItems.append(ToDoItem(text: "First text"))
print("hello world")
super.viewDidLoad()
tableView = UITableView()
tableView.dataSource = self
tableView.delegate = self
//self.view.addSubview(self.tableView)
tableView.register(UITableViewCell.self, forCellReuseIdentifier: "cell")
if toDoItems.count > 0 {
return
}
toDoItems.append(ToDoItem(text: "text 1"))
toDoItems.append(ToDoItem(text: "text 2"))
toDoItems.append(ToDoItem(text: "text 3"))
toDoItems.append(ToDoItem(text: "text 4"))
toDoItems.append(ToDoItem(text: "text 5"))
toDoItems.append(ToDoItem(text: "text 6"))
toDoItems.append(ToDoItem(text: "text 7"))
toDoItems.append(ToDoItem(text: "text 8"))
toDoItems.append(ToDoItem(text: "text 9"))
toDoItems.append(ToDoItem(text: "text 10"))
toDoItems.append(ToDoItem(text: "text 11"))
toDoItems.append(ToDoItem(text: "text 12"))
}
// MARK: - Table view data source
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return toDoItems.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
print("should assign text here")
let item = toDoItems[indexPath.row]
cell.textLabel!.text = item.text
return cell
}
}
得到viewDidLoad()
摆脱这一行:
tableView = UITableView()
的tableView
@IBOutlet
应该在你的故事板连接。通过分配UITableView()
,您正在创建第二个UITableView
,这不是屏幕上的那个。
要将tableView
出口连接在故事板,点击圆圈在ViewController中出口并拖动到的tableView左:
谢谢,非常感谢!我遵循你的建议,现在我的应用程序运行顺利。 –
不客气!我很高兴我能帮上忙! – vacawama
尝试'tableView.reloadData ()'后追加toDoItems – Nef10