在没有故事板或 xib 文件的情况下实例化 UIViewController

Instantiating UIViewController Without A Storyboard Or xib File

我一直在寻找一种方法来实例化未附加到故事板或 xib 文件的自定义 UIViewController class。

当然,当我尝试初始化 UIViewController 时,它需要一个 NSCoder 对象。

但是我不知道这个 NSCoder 对象是从哪里来的,也不知道如何正确地制作它。文档说它是一个接口声明对象。

你知道我如何制作一个 NSCoder 对象来初始化我的 UIViewController 吗?或者我可以在应用程序的某处获取 NSCoder 对象吗?

public class Controller:UIViewController, UIAlertViewDelegate
{
    var _viewAuto:AutoUI! //newName

    override init()
    {
        super.init()
    }

    required public init(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
    }
}

init(coder aDecoder: NSCoder) 仅在从情节提要中实例化视图时才被调用。要创建自定义 UIViewController 并手动实例化,您需要做的就是添加:

required init(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
}

到您的自定义视图控制器。现在您可以自由地创建自己的初始化方法并向其传递您喜欢的任何变量。