У меня есть текст в ячейках таблицы, на который вы нажмете на него, вы передадите имя ячейки, а также вы будете переведены в другое представление.Не могу передать значение другому viewController?
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath as IndexPath, animated: true)
let row = indexPath.row
valueToPass = sections[row]
print(valueToPass)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if (segue.identifier == "fromWelcomeToSectionPage") {
// initialize new view controller and cast it as your view controller
let vc:sectionPage = segue.destination as! sectionPage
vc.passedValue = valueToPass
}
}
также я создал код в другой контроллер для проверки
if passedValue == "Základy" {
print("it works")
}
Это, как я пытаюсь передать его. Переменная valueToPass - глобальная переменная. Idk, но когда я печатаю его в файле didSelectRowAtIndexPath, он выключен, но при подготовке это нуль.
После нажатия на ячейку я получил неожиданно нашел ноль, а разворачивание необязательное значение
Вот как я создал переменную в другой точке зрения
var passedValue = String()
'valueToPass = vc.passedValue' должен быть' vc.passedValue = valueToPass' – dan
Кроме того, ваш метод делегата tableview использует подпись из более старой версии swift, и ваша подготовка к методу segue использует подпись Swift 3. Они оба вызваны? – dan
Возможный дубликат [Передача данных между контроллерами просмотров] (http://stackoverflow.com/questions/5210535/passing-data-between-view-controllers) –