Как я могу получить Int для значения, выбранного в массиве, используя табличное представление? - PullRequest
0 голосов
/ 20 марта 2019

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

Функция:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    self.performSegue(withIdentifier: "goToEditArea", sender: self)
}

Здесь я получаю массив для отправки.

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    let vc = segue.destination as! addArea
    if let selectedIndexPath = areaTableView.indexPathForSelectedRow {
        // Send over the area to update
        vc.area = areaArray[selectedIndexPath.row]
    }
}

В основном мне просто нужно целочисленное значение для объекта, чтобы я мог сохранить его в нужном слоте.

1 Ответ

0 голосов
/ 20 марта 2019

В вашем tableView(_:didSelectRowAt:) передаче indexPath.row на performSegue(withIdentifier:sender:):

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    self.performSegue(withIdentifier: "goToEditArea", sender: indexPath.row)
}

Затем вы можете получить это значение позже в prepare(for:sender:):

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    let vc = segue.destination as! addArea
    if let row = sender as? Int {
        vc.area = areaArray[row]
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...