如何将多维数组值分配给Tableview Cell swift 3

时间:2017-05-04 11:37:30

标签: arrays swift3 tableview cell

    var QuestionID = [String]()
    var Questions = [String]()
    var AnswersID = [[String]]()
    var AnswersArray = [[String]]()
    var AnswerType = [String]()


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

       let cell = 
             tblQuickQuestions.dequeueReusableCell(withIdentifier: 
             "idQuickQuestionsTableViewCell", for: indexPath) as! 
             QuickQuestionsTableViewCell
       cell.backgroundColor = UIColor.white
       cell.selectionStyle = .none
       cell.lblRadio!.text = AnswersArray[indexPath.sections]
       [indexPath.rows]

      return cell
    }

   func tableView(_ tableView: UITableView, numberOfRowsInSection 
     section: Int) -> Int{
         return AnswersArray[section].count
 }

/ ********************************************** *********************************************** / 我的数组值:

问题ID:[“2”,“3”,“4”,“5”,“6”]

问题:[“地板怎么样?”,“测试问题???”,“什么是你的bdate”,“测试问题”,“你好吗......?”

答案类型:[“复选框”,“复选框”,“下拉菜单”,“下拉菜单”,“收音机按钮”]

答案ID:[[“3”],[“5”],[“6”,“7”,“8”],[“9”],[“10”,“11”,“12 “]]

AnswersArray:[[“test”],[“ans”],[“4月2日”,“7月”,“15aug”],[“lklklk”],[“aa”,“bb”,“ CC“]]

我想实现一个问题,答案测验,其中答案是多种选择,可以是单选按钮,复选框或列表。我已经实现了二维数组的答案,如:答案[[“1”,“2”,“3”],[“1”],[“1”,“2”,“3”,“4”,“ 5" ]]。其中第一个内部数组代表第一个问题的答案,第二个内部数组代表第二个问题,依此类推。以及如下问题:问题[“问题1”,“问题2”,“问题3”]。现在我想将这些值分配给表视图单元格中的标签,并希望在下一个按钮单击时显示下一个问题和答案。

1 个答案:

答案 0 :(得分:0)

您可以通过创建Singleton的{​​{1}}数组来解决此问题。

假设我的单例数组名称是'MainArray'。 所以我创建了一个将从Dictionary函数调用的函数。

viewDidLoad()

来自控制台的输出:

func gatherData(){

    MainArray.removeAll(keepingCapacity: false)

    let QuestionsID : [String] = ["2", "3", "4", "5", "6"]
    let Question : [String] = ["How is the flooring?", "Test Question ???", "what is ur bdate", "Test Question", "How are you ...?"]
    let AnswerType : [String] = ["Checkbox", "Checkbox", "Drop Down Menu", "Drop Down Menu", "Radio Buttons"]
   // let AnswersID : [[String]] = [["3"], ["5"], ["6", "7", "8"], ["9"], ["10", "11", "12"]]
    let AnswersArray : [[String]] =  [["test"], ["ans"], ["2 April", "7 jan", "15aug"], ["lklklk"], ["aa", "bb", "cc"]]

    var emptyDictionary = [String: Any]()

    for ind in 0...QuestionsID.count-1{
        emptyDictionary["QID"] = QuestionsID[ind]
        emptyDictionary["QNAME"] = Question[ind]
        emptyDictionary["ANSWERTYPE"] = AnswerType[ind]

        var innerArray : [String] = []
        for inner in 0...AnswersArray.count-1{
              innerArray = [AnswersArray[ind][inner]]
            break
        }
       emptyDictionary["ANSWERARRAY"] = innerArray
        emptyDictionary["ANSWER_USER"] = ""
        MainArray.append(emptyDictionary)

    }
    print("MainArray:\(MainArray)")

}

通过使用 MainArray:[["ANSWERARRAY": ["test"], "ANSWER_USER": "", "ANSWERTYPE": "Checkbox", "QNAME": "How is the flooring?", "QID": "2"], ["ANSWERARRAY": ["ans"], "ANSWER_USER": "", "ANSWERTYPE": "Checkbox", "QNAME": "Test Question ???", "QID": "3"], ["ANSWERARRAY": ["2 April"], "ANSWER_USER": "", "ANSWERTYPE": "Drop Down Menu", "QNAME": "what is ur bdate", "QID": "4"], ["ANSWERARRAY": ["lklklk"], "ANSWER_USER": "", "ANSWERTYPE": "Drop Down Menu", "QNAME": "Test Question", "QID": "5"], ["ANSWERARRAY": ["aa"], "ANSWER_USER": "", "ANSWERTYPE": "Radio Buttons", "QNAME": "How are you ...?", "QID": "6"]] 索引位置,您可以在数组值之间切换,这些数据只是该索引的单个字典,您可以根据字典中的数据显示结果。

如果这样可以解决您的问题,请不要忘记接受答案。