У меня есть главный контроллер представления таблицы со статическими ячейками, которые имеют название, а затем метку детали. Когда пользователь нажимает на «ячейку 1», их переводят во второй контроллер табличного представления со статическими ячейками. Они выбирают из списка (только одна ячейка может быть выбрана), а затем, когда они нажимают кнопку «Назад», все названия ячеек, которые они выбрали, переносятся на метку детали ячейки, на которую они нажали. Контроллер основного вида имеет выходы для каждой метки деталей. Я испортил его в течение двух дней и не могу заставить его работатьПередача выбранного заголовка строки обратно в главный контроллер представления таблицы
ответ
Есть несколько способов решения этой проблемы.
Использование делегата
Вы просто реализовать делегат и получить данные обратно из вторичного контроллера представления. В контроллере вторичного представления вы можете вызвать делегата следующим образом.
self.delegate.dataInputed (ххх)
и способ dataInputed первый контроллер зрения будет называться. В методе dataInputed, вы можете изменить значение источника данных для выбранного indexPath и перезагрузите данные
Отправить уведомление
Вы просто держать выбранные ячейки таблицы indexPath, и после получения уведомления от контроллер просмотра дополнительной детали, вы можете обновить значение источника данных для выбранного индекса и перезагрузить таблицу.
я забыли сказать, что я использовал разматывать также –
эй Харри, пожалуйста, объясните с помощью одного примера, или вы также можете отправить ссылку для справки. Благодарю. – deltami
Добавить свойство delegate, которое является типом DismissDelegate, на ваш второй контроллер представления и установить его на первый контроллер. Добавить Этот протокол
protocol DismissDelegate {
func selectedCell(index : int)
}
Когда второй вид освобождается, например в методе viewWillDisapper, вызовите метод selectedCell и передать ему selectedCell
delegate.selectedCell(self.tableView.indexOfSelectedCell) //i don't know the correct function
Затем в главном контроллере представления соответствуют протоколу и делать все, что вам нужно сделать с индексом
func selectedCell(index : int) {
//whatever you need to do with the index
}
В чем ваш вопрос? Что вы пробовали? Давайте посмотрим пример кода. Это очень расплывчато. – Rohan
функ Tableview (Tableview: UITableView !, didSelectRowAtIndexPath indexPath: NSIndexPath) { Println ("! Вы выбрали сота \ (indexPath.row)") // Получить сотовый Ярлык пусть indexPath = tableView.indexPathForSelectedRow(); let currentCell = tableView.cellForRowAtIndexPath (indexPath!) Как UITableViewCell !; пусть раскадровку = UIStoryboard (название: "YourStoryBoardFileName", расслоение: ноль) вар ViewController = storyboard.instantiateViewControllerWithIdentifier ("viewControllerIdentifer"), как AnotherViewController viewController.passedValue = currentCell.textLabel.text –
Я сожалею только начал изучать быстры –