首页 > 解决方案 > 如何为从情节提要加载的视图控制器使用init?

问题描述

我总是像这样从情节提要中初始化我的视图控制器:

let controller = storyboard!.instantiateViewController(withIdentifier: "MyViewController") as! MyViewController

我想在 init 上初始化变量。通常我只是将它们分配给控制器,例如controller.variable = x. 我更喜欢使用 init() 函数,但如果我使用情节提要,我似乎不能。最好的方法是什么?

标签: iosswift

解决方案


我不认为如果你为 ViewController 创建自己的 init() 会很有用。

您可以简单地使用如下:

let storyboard = UIStoryboard(name: "Main", bundle: nil)
    let controller = storyboard.instantiateViewController(withIdentifier: "ViewController") as! ViewController
    controller.pageTitle = "XYZ"
    controller.pageNumber = 2

如果您想将多个值传递给目标控制器,那么如果所有值都定义了一个类别类,那么您也可以传递模型类。


推荐阅读