Несколько разделов в UITableView Swift 4 - PullRequest
0 голосов
/ 03 октября 2018

Ну, я пытаюсь сделать регистрационную форму.Моя проблема в том, что в ячейке раздела не отображается правильная информация в разделах, она показывает всю информацию в разделах ... ммм Я думаю, что-то пропустил в ячейке для строки.

Итак, мой код будет выглядеть примерно так:

UITableViewDataSource

extension IEKRegistrationPage3Controller: UITableViewDataSource {

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

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

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "IEKRegistrationPage3GraduateCell", for: indexPath) as! IEKRegistrationPage3GraduateCell

    // Graduate
    if let graduate = Graduate(rawValue: indexPath.row) {
        cell.updateLayout(withTitle: graduate.description, isSelected: [graduate] == iekRegistrationFormData.graduate)
        }

    if let student = Student.init(rawValue: indexPath.row) {
        cell.updateLayout(withTitle: student.description, isSelected: [student] == iekRegistrationFormData.student)
    }

    return cell
    }
}

Также вот UITableViewDelegate

extension IEKRegistrationPage3Controller: UITableViewDelegate {

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    // Graduate
    tableView.deselectRow(at: indexPath, animated: true)
    if indexPath.section == 0 {
        if let graduate = Graduate(rawValue: indexPath.row) {
            iekRegistrationFormData.graduate = [graduate]
        }
    }

    // Student
    tableView.deselectRow(at: indexPath, animated: true)
    if indexPath.section == 1 {
        if let student = Student(rawValue: indexPath.row) {
            iekRegistrationFormData.student = [student]
        }
    }

    // Engilsh
    tableView.deselectRow(at: indexPath, animated: true)
    if indexPath.section == 2 {
        // TODO
    }
     tableView.reloadData()
}

}

и, наконец, titleForHeaderInSection

func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
    // Graduate
    if section == 0 {
        return "ΑΠΟΦΟΙΤΟΣ"
    }

    // Student
    if section == 1 {
        return "ΦΟΙΤΗΤΗΣ"
    }

    // Engilsh
    if section == 2 {
        return "ΑΓΓΛΙΚΑ"
    }
    return nil
}
...