【问题标题】:How to pass an array to a view controller depending on button click?如何根据按钮单击将数组传递给视图控制器?
【发布时间】:2018-01-18 03:55:09
【问题描述】:

所以我正在创建一个测验应用程序...

应用布局:

查看 Controller1:选择测验主题

运动(UI按钮)

数学(UIButton)

汽车(UIButton)

动物(UIButton)

(根据用户点击的按钮,它会将他们带到另一个视图控制器,其中列出了用户可以选择的几个类别进行测验)

ViewController2:选择测验类别

类别 - 动物

哺乳动物(UIButton)

爬行动物(UIButton)

食肉动物(UIButton)

鱼(UIButton)

(现在根据用户对类别的选择,我希望能够通过一个视图控制器发送问题,而不是针对每个类别制作同一视图的多个视图控制器。)强>

希望这是有道理的......

我有多个问题库设置,其中包含特定类别的问题

这是我使用的模型:

导入基础

class Questions {
  let questionText : String
  let answer : String
  let option1 : String
  let option2 : String
  let option3 : String
  let option4 : String

  init(text: String, correctAnswer: String, textA: String, textB: String, textC: String, textD: String) {
    questionText = text
    answer = correctAnswer
    option1 = textA
    option2 = textB
    option3 = textC
    option4 = textD
  }
}

这是存放问题的 QuestionBank.swift 文件

import Foundation

class QuestionBank1 {
  var list = [Questions]()

  init() {

    list.append(item)

    list.append = (Questions(text: "What is the largest animal found on earth?", correctAnswer: "elephant", textA: "tiger", textB: "grey whale", textC: "lion", textD: "elephant" ))   
  }
}

所以希望你仍然和我在一起,是的,显然问题库中有更多问题,但是我如何通过一个视图控制器传递某些 QuestionBank.swift 文件,该控制器处理提出问题并提供 4 个多项选择答案,具体取决于用户在前一个视图控制器上选择的类别,这有意义吗?

PS 我是编码新手,仍在尝试正确使用语言

【问题讨论】:

  • 你可以使用回调

标签: ios arrays swift xcode uibutton


【解决方案1】:

您可以在prepareForSegue 方法中传递与该特定类别相关的问题列表。在您的 Questions 模型中,您必须添加类别属性。

请参阅此link,了解如何执行此操作。

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
  let selectedIndexPath = self.tableView.indexPathForSelectedRow()!

  let selectedCategory = categories[selectedIndexPath.row]
  let categoryQuestions = questions.filter({$0.category == selectedCategory})
  let questionsViewController = segue.destinationViewController as! QuestionsViewController
  questionsViewController.questions = questions
}

【讨论】:

  • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。
猜你喜欢
  • 1970-01-01
  • 2014-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-25
  • 2021-12-24
相关资源
最近更新 更多