Как сохранить выделение в didSelectRow? - PullRequest
0 голосов
/ 06 марта 2020

Я хочу сохранить выделение из таблицы, выбрал строку, поэтому я могу передать ее в UILabel. Я пытался сохранить строку как ссылку и сохранить выбранную строку, после чего я передал ссылку в метку, но она не работает. Это мой код настройки, мой cellForRow и didSelectRow. Мои saveSelectedClass и saveSelectedSubject не работают, когда я пытаюсь передать его в моей функции reloadV C, в то время как в моем didSelectRow уже сохраняют его

    @IBOutlet weak var classContainer: UIView!
    @IBOutlet weak var classNameLbl: UILabel!
    @IBOutlet weak var classTableView: UITableView!
    @IBOutlet weak var classDownArrowIV: UIImageView!

    @IBOutlet weak var subjectContainer: UIView!
    @IBOutlet weak var subjectNameLbl: UILabel!
    @IBOutlet weak var subjectDownArrowIV: UIImageView!
    @IBOutlet weak var subjectTableView: UITableView!

    var selectedIndexPath = IndexPath(row: 0, section: 0)
    var selectedClass: String?
    var selectedSubject: String?

    func reloadVC() {
        ClassService.shared.getClassId { result in
            switch result {
            case .success(let classes):
                self.classes.removeAll()
                self.classes = classes
                self.classNameLbl.text = self.selectedClass
                self.selectedId = classes.first?.id
            case .failure(let error):
                print(error)
                break
            }
        }

        ClassService.shared.getSubjectData(classId: selectedId ?? "", date: selectedDay ?? "") { result in
            switch result {
            case .success(let subjects):
                self.subjects.removeAll()
                self.subjects = subjects
                self.subjectNameLbl.text = self.selectedSubject
            case .failure(let error):
                print(error)
            }
        }

    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        if tableView == classTableView {
            if indexPath == selectedIndexPath {
                selectedClass = classes[indexPath.row].name
                tableView.reloadData()
            }
        }

        if tableView == subjectTableView {
            if indexPath == selectedIndexPath {
                selectedSubject = subjects[indexPath.row].subjectName
                tableView.reloadData()
            }
        }
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        if tableView == classTableView {
            let cell = tableView.dequeueReusableCell(withIdentifier: "classCellId", for: indexPath)
            let className = classes[indexPath.row]
            cell.textLabel?.text = className.name
            return cell
        }

        if tableView == subjectTableView {
            let cell = tableView.dequeueReusableCell(withIdentifier: "subjectCellId", for: indexPath)
            let item = subjects[indexPath.row]
            cell.textLabel?.text = item.subjectName
            return cell
        }

        return UITableViewCell()
    }

   extension GASViewController: JKCalendarDelegate {
    func calendar(_ calendar: JKCalendar, didTouch day: JKDay) {
        selectedDate = day
        selectedDay  = selectedDate.date.toString()

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