У меня есть очень интересная проблема:СВИФТ: сортировка TableView и передавать данные на второй ViewController
У меня есть два контроллера вида: FirstViewController и SecondViewController.
В FirstViewController есть вид таблицы.
Существует кнопка для заказа строк в таблице.
Существует точка между контроллерами.
//MARK: Sorting function:
func changeSorting(buttonTag: Int) {
let button = self.view.viewWithTag(buttonTag) as? UIButton
let buttonName = (button?.currentTitle)! as String
//Apply Sorting to table:
arrayOfBanks.sortInPlace {
item1, item2 in
let val1 = item1["sellRate"] as! Double
let val2 = item2["sellRate"] as! Double
if buttonName == "0-9⬇︎" {
return val1 > val2
} else {
return val2 > val1
}
}
self.tableView.reloadData()
}
//MARK: Navigation
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "showCalculator" {
let viewController = segue.destinationViewController as! SecondViewController
let indexPath = tableView.indexPathForSelectedRow?.row
print(indexPath!)
viewController.bn = self.bankDict[indexPath!]["bankName"]! as! String
viewController.cn = self.bankDict[indexPath!]["currencyName"]! as! String
viewController.br = String(self.bankDict[indexPath!]["sellRate"]!)
viewController.sr = String(self.bankDict[indexPath!]["buyRate"]!)
}
Представьте себе, что у нас есть три строки в таблице с различными банковскими именами: BANK1, Банк2, Bank3. Функции сортировки работают хорошо - он обновляет мою таблицу. Скажем, после сортировки у нас есть новая последовательность: Bank3, Bank2, Bank1.
Так что в конце концов - проблема в том, что я использую segue для экспорта значений в secondViewController. Он отлично работает, если я не использую сортировку. Но если я это сделаю, он передает значения, как это было бы до сортировки.
E.G. без сортировки, если я нажимаю верхнюю строку, он будет экспортировать bank1.
но. после сортировки у нас есть Bank3 в верхней строке, но он по-прежнему переносит Bank1 на secondViewController.
Может ли кто-нибудь объяснить, что мне не хватает? Спасибо.
Да, глупая ошибка! моя вина! Спасибо за ваш ответ – Almazini