Как мне сохранить значение tableviewcell с помощью checmark и передать его другому контроллеру представления программным способом? - PullRequest
0 голосов
/ 29 марта 2019

Я хочу сохранить название экспертизы, которая была отмечена галочкой, и передать имя экспертизы в другую ячейку контроллера uitableview.

Массив экспертизы имеет список экспертизы.

импорт UIKit

класс OriginalController: UITableViewController {

var pickedExpertise: String?
var typeExpertise = ["Marketing", "Sales", "Tech", "Finance"]


override func viewDidLoad() {
    super.viewDidLoad()
    //        view.backgroundColor = UIColor.black.withAlphaComponent(0.7)
    view.backgroundColor = .white
    tableView.register(UITableViewCell.self, forCellReuseIdentifier: "cell")
}

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return typeExpertise.count
}

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
    cell.textLabel?.text = typeExpertise[indexPath.row]


    return cell
}

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

    if let cell = tableView.cellForRow(at: indexPath) {
        cell.accessoryType = .checkmark


    }





}

override func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath) {
    if let cell = tableView.cellForRow(at: indexPath) {

        cell.accessoryType = .none

    }
}

// Контроллер другого вида

import UIKit

класс NewController: UITableViewController {

var pickedExpertise2: String = "Expertise"

override func viewDidLoad() {
    super.viewDidLoad()
    navigationItem.title = "Test 1"
    navigationController?.navigationBar.prefersLargeTitles = true
    tableView.register(UITableViewCell.self, forCellReuseIdentifier: cellID)
}

override func numberOfSections(in tableView: UITableView) -> Int {
    return 5
}

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return 1
}

let cellID = "cellID"

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    let cell = UITableViewCell(style: .default, reuseIdentifier: nil)
    let cell2 = tableView.dequeueReusableCell(withIdentifier: cellID, for: indexPath)



    switch indexPath.section {

    case 1:
        cell.textLabel?.text = "Text 1 "
    case 2:
        cell.textLabel?.text = "Text 2 "

    case 3:

        cell2.textLabel?.text = "expertise"


        cell2.textLabel?.textAlignment = .center
        return cell2
    case 4:
        cell.textLabel?.text = "Text 4"

    default:
        cell.textLabel?.text = "Text default "
    }


    return cell
}

override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {


    let headerLabel = UILabel()
    headerLabel.text = "Name"
    switch section {
    case 0:
       headerLabel.text = "Name 0"
    case 1:
        headerLabel.text = "Name 1"
    case 2:
        headerLabel.text = "Name 2"
    case 3:
        headerLabel.text = "Name 3"

    default:
        headerLabel.text = "Name 4"
    }

    return headerLabel
}

override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
    return 40
}

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    if indexPath.section == 3 {

        let expertiseC = OriginalController()

        navigationController?.pushViewController(expertiseC, animated: true)
    }
}

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...