首页 文章

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

提问于
浏览
0

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

所以基本上我有一个叫做问题的课程,“修改”问题的方法也会在其下面 . 现在我正在研究向表单添加问题的方法 .

一个问题包括:

  • UILabel (你叫什么名字?)

  • UITextFieldUISegmentedControl (用于多项选择题)

我是Swift的新手,我仍然认为是面向对象编程的初学者 . 现在我正在尝试设计Questions类布局,它看起来像这样吗?

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
}

显然,问题的构成将取决于用户采取的动作(按下按钮) . 当用户选择添加新问题时,他们将输入标签,并决定是否要使用分段控件或文本字段 .

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

1 回答

  • 0

    全局变量越少越好 .

    鉴于上面的类,我希望你创建 Question 的方法将是一些UIViewController子类的方法,包含所有Questions的数组应该是同一个视图控制器子类的属性 .

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

    另一个快速说明......如果一个问题可以是文本输入也可以是多项选择,但不能同时选择两者,那么这一个类不应该包含两个字段 . 您可能需要两个 Question 子类(可能是 FillInQuestionMultiChoiceQuestion ),这两个子类可能都是从 Question 基类派生的 .

相关问题