我对 indexPath.row
有疑问。在 cellForRowAt
中,这行代码完美无缺:
let cell = tableView.dequeueReusableCell(withIdentifier: "MenuViewCell", for: indexPath) as! MenuViewCell
let item = converters[indexPath.row]
cell.ConverterName.text = item.converterName
cell.converterImage.image = item.converterImg
但是当我尝试在 viewdidload 中实现它时出现错误: “使用未解析的标识符‘indexPath’”
和代码:
struct converter {
let converterName: String
let converterImg: UIImage
}
var converters = [converter(converterName: "Converter of time", converterImg: #imageLiteral(resourceName: "time")),
converter(converterName: "Converter of pressure", converterImg: #imageLiteral(resourceName: "davlenie")),
converter(converterName: "Converter of speed", converterImg: #imageLiteral(resourceName: "skorost")),
converter(converterName: "Converter of distance", converterImg: #imageLiteral(resourceName: "dlinna"))]
override func viewDidLoad() {
super.viewDidLoad()
let item = converters[indexPath.row]
let itemSort = item.converterName
self.converters = itemSort.sorted { $0 < $1 }
self.tableView.reloadData()
}
最佳答案
viewDidLoad
没有像 cellForRowAt
那样传递 IndexPath 参数。
IndexPath 用于标识要构建或选择的当前单元格。在 viewDidLoad 中不需要它。您在数组中有 4 个转换器,并且可以在需要时仅通过使用其索引来选择任何您喜欢的转换器。
关于swift - 如何修复 viewDIdLoad 中的 indexPath 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51186416/