如何为我在 Swift 中以编程方式创建的 UIViewController 子类创建 init?

Posted

技术标签:

【中文标题】如何为我在 Swift 中以编程方式创建的 UIViewController 子类创建 init?【英文标题】:How do I create the init for a UIViewController subclass that I create programmatically in Swift? 【发布时间】:2014-06-30 18:45:59 【问题描述】:

假设我的UIViewController 有两个属性,var animal: Stringvar color: UIColor

如何创建自定义init,以便我可以轻松地在代码中创建它?

我想拥有:

init(animal: String, color: UIColor) 
   self.animal = animal
   self.color = color

但是我得到一个编译器错误,我没有使用指定的初始化程序。我做错了什么/我应该怎么做?

【问题讨论】:

【参考方案1】:

设置这些属性后调用super.init()。这应该够了吧。您的方法应如下所示:

init(animal: String, color: UIColor) 
   self.animal = animal
   self.color = color
   super.init()

【讨论】:

通常在 Swift 中,super.init 应该被最后调用。 super.init() 不是 UIViewController 的指定初始化器

以上是关于如何为我在 Swift 中以编程方式创建的 UIViewController 子类创建 init?的主要内容,如果未能解决你的问题,请参考以下文章

在 Swift 中以编程方式访问和更新 stackview 中的 label.text 或其他 UILabel 属性

在 Swift 中以编程方式创建 UITableViewController

如何在 Swift 中以编程方式创建 SplitViewController?

在 Swift 中以编程方式创建垂直 UIScrollView

使用 Cocoa 在 Swift 4.0 中以编程方式创建复选框的标准方法是啥?

获取 Button 和 Textfield 数据,当它们在 swift 5 中以编程方式添加时