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 中的空白部分