【问题标题】:How to fix indexPath error in viewDIdLoad?如何修复 viewDIdLoad 中的 indexPath 错误?
【发布时间】:2018-07-05 08:17:53
【问题描述】:

我对@9​​87654321@ 有疑问。在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 方法中你不会得到indexPath.row。为什么在viewDidLoad 方法中需要它?你有什么要求?
  • @DharmeshKheni 我制作了一个多语言应用程序,所以我想在加载 ViewController 时按字母顺序对单元格进行排序
  • 如果您想根据在 viewdidload 中使用的名称对 Converters 进行排序 converters = converters.sorted(by: { (obj1, obj2) -&gt; Bool in obj1.converterName &gt; obj2.converterName })
  • 行得通!谢谢!

标签: swift sorting struct viewdidload indexpath


【解决方案1】:

viewDidLoad 没有像cellForRowAt 那样传递 IndexPath 参数。

IndexPath 用于标识要构建或选择的当前单元格。 viewDidLoad 中不需要它。您在数组中有 4 个转换器,并且可以在需要时选择任何您喜欢的转换器,只需使用它的索引即可。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-13
    • 1970-01-01
    • 2021-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-13
    • 1970-01-01
    相关资源
    最近更新 更多