Как исправить ошибку indexPath в viewDIdLoad? - PullRequest
0 голосов
/ 05 июля 2018

У меня проблема с 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()

}

1 Ответ

0 голосов
/ 05 июля 2018

viewDidLoad не передан параметр IndexPath, как cellForRowAt.

IndexPath используется для идентификации текущей ячейки, которая будет построена или выбрана. Вам не нужно это в viewDidLoad. У вас есть 4 конвертера в массиве и вы можете выбрать любой, который вам нужен, просто используя его индекс.

...