Я пытаюсь реализовать метод делегата для элемента выбора. Я запутался в обновлении ячейки tableView. Поскольку у меня есть несколько разделов, и список будет тот, который будет использоваться для разных ячеек. Как я могу обновить строку или модель ячейки таблицы, чтобы перезагрузить таблицу?
Модель:
struct Unit : Codable {
let sectionList : [SectionList]?
}
struct SectionList : Codable {
let title : String?
let items : [Item]?
}
struct Item : Codable {
let actionType : Int?
let actionUrl : String?
let bgColor : String?
let booleanValue : Bool?
let textField : String?
let textValue : String?
let unitId : Int?
let latitude : Double?
let longitude : Double?
let actionParamData: String?
let actionTitle: String?
let pickList: [SectionList]?
let multiSelect: Bool?
let selectedValue: [String]?
let version: Int?
let masterId: Int?
let itemValue: String?
}
Фёрвьюконтроллер:
var AppData: Unit?
func listFunc(tvc2: ViewController, didSelectList listValue: String) {
print(listValue)
let indexPathRow:Int = 0
let indexPosition = IndexPath(row: indexPathRow, section: 0)
tableView.reloadRows(at: [indexPosition], with: .none)
}
SecondViewController: (содержит список)
protocol ListDelegate {
func listFunc(tvc2: ViewController, didSelectList listValue: String)
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let indexPath = tableView.indexPathForSelectedRow
let currentCell = tableView.cellForRow(at: indexPath!)!
//print(currentCell.textLabel?.text as Any)
currentCell.accessoryType = .checkmark
delegate?.listFunc(tvc2: self, didSelectList: currentCell.textLabel?.text ?? "")
let vc = self.storyboard?.instantiateViewController(withIdentifier: "FirstViewController") as! FirstViewController
self.navigationController?.pushViewController(vc, animated: true)
}
secondViewController
.var delegate: ListDelegate?
- person   schedule 02.12.2019secondViewController
и установить вFirstViewController
. Как только элемент выбран, он обновляет ячейку. - person   schedule 02.12.2019github
ссылкой? - person   schedule 02.12.2019prepareForSegue
). Также вам нужно вернуться к существующему контроллеру первого представления, а не представлять новый экземпляр e. - person Paulw11   schedule 02.12.2019viewWillAppear
вашего первого vc. - person Paulw11   schedule 02.12.2019