Я создаю приложение для опроса пользователей по анатомии.Я создал класс QuizControl, который является подклассом UIViewController, который использует структуру «Вопросы» для описания моих потребностей.Он создает общий шаблон, который выглядит примерно так: picture .Это общая схема с меткой вопроса с четырьмя кнопками внизу, соответствующей различным вариантам ответа.
Моя проблема в том, что я хочу оставить этот класс QuizControl универсальным, если это возможно, и чтобы другие классы наследовали его, передавая только его массиввопросов обратно в класс QuizControl.Я не понимаю, как передать параметр обратно в конструктор класса viewDidLoad ().
Вот мой класс QuizControl , который является подклассом UIViewControl.А вот и ребенок: TorsoQuiz
Если вы не видите картинки, код выглядит так:
QuizControl
struct Question {
var Question : String!
var Answers : [String]!
var Answer : Int!
}
class QuizControl: UIViewController {
@IBOutlet var Buttons: [UIButton]!
@IBOutlet var QLabel: UILabel!
var Questions = [Question]()
var QNumber = Int()
var AnswerNumber = Int()
var correct = Int()
var incorrect = Int()
override func viewDidLoad() {
super.viewDidLoad()
correct = 0
incorrect = 0
Questions = [Question(Question: "Question 1", Answers: ["Answer 0","Answer 1","Answer 2","Answer 3"], Answer: 2),
Question(Question: "Question 2", Answers: ["Answer 4","Answer 5","Answer 6","Answer 7"], Answer: 0),
Question(Question: "Question 3", Answers: ["Answer 8","Answer 9","Answer 10","Answer 11"], Answer: 1),
Question(Question: "Question 4", Answers: ["Answer 12","Answer 13","Answer 14","Answer 15"], Answer: 2),
Question(Question: "Question 5", Answers: ["Answer 16","Answer 17","Answer 18","Answer 19"], Answer: 3),]
pickQuestion()
}
TorsoQuiz
class TorsoQuiz: QuizControl {
var torsoQuestions = [Question(Question: "My chest hurts and I'm having difficulty breathing", Answers: ["Check for Asthma","Check family history of heart problems","Call an ambulance","Sample diagnosis 3"], Answer: 2),
Question(Question: "Question 2", Answers: ["Answer 4","Answer 5","Answer 6","Answer 7"], Answer: 0),
Question(Question: "Question 3", Answers: ["Answer 8","Answer 9","Answer 10","Answer 11"], Answer: 1),
Question(Question: "Question 4", Answers: ["Answer 12","Answer 13","Answer 14","Answer 15"], Answer: 2),
Question(Question: "Question 5", Answers: ["Answer 16","Answer 17","Answer 18","Answer 19"], Answer: 3),]
//Pass these questions/answers to Quiz Control?
override func viewDidLoad() {
super.viewDidLoad()
Как мне передать параметры обратно в QuizControl?Ответы, которые я видел, уже используют .init () и .init ()?но поскольку ответы старые, решения не работают на Xcode 10.2.1 и swift 5. Решения используют параметр frame:, который компилятор не примет.Спасибо за любую помощь, которую вы можете предложить.