在iPad的Swift Playgrounds中显示TableView



一切都很好,除了最后一行,我试图在实时视图中显示tableView不工作:PlaygroundPage.current.liveView = controller

我不知道我做错了什么?

import UIKit
import PlaygroundSupport
import Foundation
class TableViewController: UITableViewController {
    let tableData = ["Matthew", "Mark", "Luke", "John"]
override func viewDidLoad() {
    super.viewDidLoad()
    print("Hello Matt")
}
override func numberOfSections(in tableView: UITableView) -> Int {
    return 1
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return tableData.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    var cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as UITableViewCell
    cell.textLabel?.text = tableData[indexPath.row]
    return cell
}
}
let controller = TableViewController()
PlaygroundPage.current.liveView = controller

我想你忘记在viewDidLoad()中注册表视图单元格类了

override func viewDidLoad() {
    super.viewDidLoad()
    tableView.register(UITableViewCell.self, forCellReuseIdentifier: "cell")
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath)中,在函数的顶部增加一行:

tableView.register(UITableViewCell.self, forCellReuseIdentifier: "cell")

:

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    tableView.register(UITableViewCell.self, forCellReuseIdentifier: "cell")
    var cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as UITableViewCell
    cell.textLabel?.text = tableData[indexPath.row]
    return cell
}

最新更新