Swift - 无法向 UITableView 添加数据

Posted

技术标签:

【中文标题】Swift - 无法向 UITableView 添加数据【英文标题】:Swift - Unable to add data to UITableView 【发布时间】:2020-10-01 03:38:58 【问题描述】:

学习 Swift 和 Storyboards,我正在尝试创建一个重复单元格的视图 (UITableView)。

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

我的视图控制器如下所示:

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?

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

【问题讨论】:

你能给我们看完整的崩溃日志吗?或者可能是您的myLabel 未与您单元格中的插座链接 没有崩溃日志,我已经确认单元格上的标识符设置为myLabel 对于单元格标识符,您必须在情节提要标识符字段中设置cellId。检查此链接imgur.com/bLIExXB 【参考方案1】:

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

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

可以在故事板文件中设置委托和 dataSourceDelegate,而无需在视图控制器中创建 IBOutlet。只需选择 Table View 并转到连接检查器并将委托和数据源委托拖到视图控制器。

【讨论】:

【参考方案2】:

首先,检查您是否在情节提要上正确连接(插座,标识符一切)。 其次,如果没有任何效果,请尝试断开并重新连接 Outlets。

【讨论】:

以上是关于Swift - 无法向 UITableView 添加数据的主要内容,如果未能解决你的问题,请参考以下文章

Swift 3 错误“无法调用非函数类型 'UITableView!' 的值” [关闭]

Swift 3.0 无法从 UITableView 中删除一行

来自 url 的 swift 3 json 无法获取单元格 uitableview

Swift 3 / Alamofire:我无法获取 UITableView 上的数据

IOS Swift UITableView - 无法解释的边距 - 如何摆脱?

Swift:无法长按拖动单元格到 UICollectionViewController 和 UITableView 中的空白部分