我必须创建一个动态表单,其中包含问题答案集,并且每个用户的问题都不同。该用户中有5个问题必须回答至少3个问题。在5个问题的集合中,第一个用户可以以与第二个用户可能需要3个文本字段1下拉菜单和1个单选按钮相同的方式来获取需要1个文本字段2下拉菜单和2个单选按钮的问题。我应该采取什么方法来实现这一目标?
我试图创建一个表视图。在单元格中,我指定了一个标签来呈现一个问题,并指定了一个空白视图,稍后将根据该问题需要文本字段或单选按钮或下拉菜单来填充该空白视图。但是在这种情况下,我无法保持回答的问题,因为如果我使文本字段或复选框的用户交互无法进行,则即使尝试使用委托进行映射也不会调用didselectrowatindexpath方法,但是该方法也不适合我,因为我有很多案例要作为答案字段进行管理。
答案 0 :(得分:0)
好吧,您的主要任务是创建一个动态表单,其中根据所需的问题而具有不同的对象。因此,请先执行以下操作:
将所需的委托或IBOutlet与对象连接
在表单元格中创建闭包,并在用户回答完问题后处理数据。
答案 1 :(得分:0)
可能有不同的实现。我要做的是:-
我的实现将对QuestionModel类执行以下操作:-
Class Question {
enum Type {
case type1, type2 .....
func cellIdentifier() -> String {
switch self {
case type1:
return "type1"
//Handle all cases
}
}
}
var type: Type
}
Controller类将是这样的:-
Class Controller: UIViewController {
var questions = [Question]()
//Table view delegate method
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let questionAtIndexPath = questions[indexPath.row]
let cell = tableView.dequeReusableCell(withIdentifier: questionAtIndexPath.type.cellIdentifier(), for: indexPath)
cell.configureWith(questionAtIndexPath)
return cell
}
}