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

时间:2015-12-08 17:13:17

标签: ios swift class oop

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

所以基本上我有一个叫做问题的课程和修改"的方法。问题将归于此。现在我正在研究向表单添加问题的方法。

问题包括:

  • 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 :(得分:0)

全局变量越少越好。

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

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

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