Swift-无法将数据添加到UITableView

问题描述

学习Swift和Storyboard,我试图创建一个重复单元格视图(UITableView)。

到目前为止,我已经创建了一个带有UIView的视图,该视图链接到内部带有UITableViewCell的UITableView。我遇到的问题是我的单元格未按如下所示显示“ woof”。

我的View Controller看起来像这样:

import UIKit

class ViewController: UIViewController,UITableViewDelegate,UITableViewDataSource {

    @IBOutlet weak var myTableView: UITableView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
    }

    func tableView(_ tableView: UITableView,numberOfRowsInSection section: Int) -> Int {
        return 5
    }

    func tableView(_ tableView: UITableView,cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "cellId") as! MyListViewCell
        cell.myLabel.text = "woof"
        return cell
    }

}

经过研究,我认为我不需要注册

myTableView.register(UITableViewCell.self,forCellReuseIdentifier: "cellId")

因为它已经成功链接为出口

但是我想我可能需要像这样做委托和数据源:

myTableView.datasource = self
myTableView.delegate = self

但是我收到了:Thread 1: Fatal error: Unexpectedly found nil while implicitly unwrapping an Optional value

我正在尝试使用我想 仅打算使用一个ViewController的MVVM。我是否打算改用UITableViewController?

我已验证在情节提要中正确设置了单元格标识符。

解决方法

您遇到的此错误可能与情节提要中的UITableView与IBOutlet myTableView之间缺少连接有关。

关于UITableView.register(_:forCellIdentifier :)方法,当您在情节提要中的UITableView中创建单元格时,则在加载情节提要时UIKit会调用此方法。在代码或Xib文件中创建自定义UITableViewCell子类时,应调用此方法。

可以在情节提要文件中完成设置委托和dataSourceDelegate的操作,而无需在视图控制器中创建IBOutlet。只需选择Table View并转到连接检查器,然后将一个委托和一个数据源委托拖到视图控制器即可。

,

首先,检查故事板上是否已正确连接(插座,标识所有内容)。 其次,如果没有任何效果,请尝试再次断开并连接插座。