как выбрать только одну ячейку из таблицы viewsese - PullRequest
0 голосов
/ 30 августа 2018

Я использовал UITableViewSection. Поэтому я перечислил данные, которые мне были нужны.

Но проблема в выборе UITableViewCell.

Это мой код при выборе ячейки.

это снимок экрана

**this is the screen shot**

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    print("Section \(indexPath.section), Row : \(indexPath.row)")

    let model = questionViewModel.titleForHeaderInSection(atsection:indexPath.section)
    print(model.question)

    // reviewViewModel.question = model.id
    print(model.id)

    let value: Int = model.id
    let string = String(describing: value)
    //let x: Int? = Int(model.id)

    questionViewModel.question_id = string
    questionViewModel.question = model.question

    let optiondatasourcemodel:NH_OptionDataSourceModel = NH_OptionDataSourceModel(array: questionViewModel.tableArray[indexPath.section] as? [String] )
    print(optiondatasourcemodel.dataListArray?.count)

    let optionviewmodel:NH_OptionViewModel = NH_OptionViewModel(withdatasource: optiondatasourcemodel)
    let optionmodel =   optionviewmodel.datafordisplay(atindex:indexPath)

    let modele = questionViewModel.titleForHeaderInSection(atsection: indexPath.section)
    print(modele.buttontype)
    optionviewmodel.button = modele.buttontype

    let cell = tableview.cellForRow(at: indexPath) as? NH_QuestionListCell
    print(questionViewModel.questionlist)
    print(questionViewModel.questions)
    print(questionViewModel.answers)

    questionViewModel.question(answer:questionViewModel.question_id!)
    questionViewModel.answer(answer: optionmodel.values!)
    questionViewModel.questionlist(answer: questionViewModel.question!)

    if optionviewmodel.button == "1" {
        cell?.imagebutton.setImage(UIImage(named: "checkbox_check.png"), for: .normal)
        self.selected = 1
        questionViewModel.imagename = "1"
    }
    else if optionviewmodel.button == "2" {
        self.selected = 1
        cell?.imagebutton.setImage(UIImage(named: "radio_check.png"), for: .normal)
        questionViewModel.imagename = "2"
    }
}

согласно скриншоту есть два вопроса и два варианта. Из этого мне нужно выбрать только один вариант. EX: у тебя все хорошо? Ответ: -д

просто выберите только одну ячейку. Как только я выберу «да» и не выберу ни один вариант, данные должны быть удалены из массива.

func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath) {
    let optiondatasourcemodel:NH_OptionDataSourceModel = NH_OptionDataSourceModel(array: questionViewModel.tableArray[indexPath.section] as? [String] )
    print(optiondatasourcemodel.dataListArray?.count)

    let optionviewmodel:NH_OptionViewModel = NH_OptionViewModel(withdatasource: optiondatasourcemodel)
    let optionmodel =   optionviewmodel.datafordisplay(atindex:indexPath)

    let modele = questionViewModel.titleForHeaderInSection(atsection: indexPath.section)
    print(modele.buttontype)
    optionviewmodel.button = modele.buttontype

    let cell = tableview.cellForRow(at: indexPath) as? NH_QuestionListCell
    print(optionmodel.values)

    questionViewModel.removequestion(question:questionViewModel.question!)
    questionViewModel.removeanswer(answer:optionmodel.values!)
    questionViewModel.removequestionid(removequestionid:questionViewModel.question_id!)


    let model = questionViewModel.titleForHeaderInSection(atsection:indexPath.section)
    print(model.question)

    // reviewViewModel.question = model.id
    print(model.id)

    let value: Int = model.id
    let string = String(describing: value)
    //let x: Int? = Int(model.id)

    questionViewModel.question_id = string
    questionViewModel.question = model.question
    questionViewModel.answer = optionmodel.values

    if optionviewmodel.button == "1" {
        cell?.imagebutton.setImage(UIImage(named: "checkbox_uncheck.png"), for: .normal)
        self.selected = 1
        questionViewModel.imagename = "1"
    }
    else if optionviewmodel.button == "2" {
        self.selected = 1
        cell?.imagebutton.setImage(UIImage(named: "radio_uncheck.png"), for: .normal)
        questionViewModel.imagename = "2"
    }
}

это код. Но в соответствии с этим некоторые проблемы. Проблемы: -

  1. когда я выбираю второй раздел, что означает ..... вопрос: ты счастлив? для этого я выбрал опцию как да. В то время, я уже для первого вопроса, я выбрал один вариант, как да. И изображение флажка будет отображаться как щелчок. Но пока я выбираю следующий вопрос, изображение флажка в ячейке первого вопроса исчезает. Как исправить эту проблему.

  2. при выборе второго варианта вопроса данные не добавляются в массив.

  3. добавляется, когда я отменяю выбор той же ячейки

Так как решить проблему?

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