ios - UITableViewController 在初始化时没有选择单元格
问题描述
我有以下子类UITableViewController
:
final public class ILoveAppleSelectorTableViewController: UITableViewController {
public weak var delegate: ILoveAppleSelectorTableViewControllerDelegate?
public var data = [ILoveAppleGroupModel]()
convenience init() {
self.init(style: .plain)
}
convenience init(data: [ILoveAppleGroupModel]) {
self.init(style: .plain)
self.data = data
}
override public func viewDidLoad() {
super.viewDidLoad()
title = "Select APple Product"
tableView.registerCellClass(CheckmarkTableViewCell.self)
tableView.allowsSelection = true
tableView.allowsMultipleSelection = false
}
// MARK: - Selection
public func selectItem(at indexPath: IndexPath) {
tableView.selectRow(at: indexPath, animated: false, scrollPosition: .none)
}
// MARK: - Table view data source
override public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return data.count
}
override public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell: CheckmarkTableViewCell = tableView.dequeueCell(for: indexPath)
let item = data[indexPath.row]
cell.textLabel?.text = item.material_group_name
return cell
}
override public func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let selectedappleProduct = data[indexPath.row]
delegate?.ILoveAppleSelector(controller: self, didSelect: selectedappleProduct)
}
}
我创建它的一个实例并调用selectItem
方法:
let data = Array(appleProducts)
let selector = AppleProductSelector(data: data)
selector.selectItem(at: IndexPath(indexes: [0, 0]))
navigationController?.pushViewController(selector, animated: true)
我在调试器中检查该selectItem
方法是否被成功调用,但是没有选择任何内容。
如果我改为选择一个项目viewWillAppear
,一切都会按预期工作,并且该项目显示为选中:
public override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
selectItem(at: selectedIndexPath)
}
解决方案
推荐阅读
- smarty - 在产品列表中显示制造商名称 (Prestashop 1.7)
- python - 熊猫将值从一行复制到另一行
- sql-server - 将参数传递给 OPENQUERY
- php - PHP:找不到类 tcpdf 错误的路径
- ruby-on-rails - 如果它们相同,则删除 2D 数组中的第一个值
- python - 无法使用 Selenium 或 BeautifulSoup 抓取动态内容
- sql-server - 如何将 CSV 文件转换为 bcp 格式的文件?
- discord.py - 如何在 Discord.py 中设置一个不带前缀的命令,仅带有机器人回复的特定单词,并且机器人仅在 dm 中使用 bot 回复 thaat
- c# - 从控制台项目启动 asp net core webapp
- excel - 使用集合对象填充 Excel 表