Ios 允许用户创建表单的应用程序

Ios 允许用户创建表单的应用程序,ios,swift,class,oop,Ios,Swift,Class,Oop,我正在创建一个注册表申请。应用程序的用户将能够添加和删除问题 所以基本上我有一个叫做提问的类,“修改”问题的方法将放在它下面。现在我正在研究向表单中添加问题的方法 问题包括: UILabel(你叫什么名字?) UITextField或UISegmentedControl (用于选择题) 我是一个非常敏捷的新手,在面向对象编程中,我将是一个初学者。现在我正在尝试设计问题类布局,它应该像这样吗 class Question { var label: UILabel var

我正在创建一个注册表申请。应用程序的用户将能够添加和删除问题

所以基本上我有一个叫做提问的类,“修改”问题的方法将放在它下面。现在我正在研究向表单中添加问题的方法

问题包括:

  • UILabel
    (你叫什么名字?)
  • UITextField
    UISegmentedControl
    (用于选择题)
我是一个非常敏捷的新手,在面向对象编程中,我将是一个初学者。现在我正在尝试设计问题类布局,它应该像这样吗

class Question {
      var label: UILabel
      var multiChoice: UISegmentedControl
      var textInput: UITextField

      init(label: UILabel, multiChoice: UISegmentedControl, textInput: UITextField) {
             self.label = label
             self.multiChoice = multiChoice
             self.textInput = textInput
      }

      // methods for adding question
}
因此,很明显,问题的构成取决于用户采取的行动(按下的按钮)。当用户选择添加新问题时,他们将输入一个标签,并决定是使用分段控件还是文本字段


这就是我的问题所在。在用户决定参数后,我添加问题的方法应该创建一个问题的新实例,该实例将被返回。然后,应将问题的新实例添加到存储所有已创建问题的数组中。这个数组是在操作中初始化的(按add question按钮),还是全局初始化的,这样我以后添加的所有方法都可以访问它

全局变量越少越好

考虑到上面的类,我希望您创建
问题的方法将是某个UIViewController子类的方法,并且包含所有问题的数组应该是同一个view controller子类的属性

创建问题的方法必须将标签、segmentedControl和textInputs添加到某些UIView(可能是视图控制器的主视图)中,以便它们可见

另一个提示。。。如果一个问题可以是文本输入或多项选择,但不能两者都有,那么这个类中不应该同时包含两个字段。您将需要两个
Question
子类(
FillInQuestion
MultiChoiceQuestion
可能),可能都是从
Question
基类派生的