我正在尝试在我的 Swift 应用程序中初始化一个 UIViewController
,但我遇到了一个问题,我找不到任何明确的答案。
我想从 FlowCoordinator 调用它来初始化 Controller ,但是由于需要 init?(coder: NSCoder) 函数,我的初始化程序需要一个 NSCoder 对象。
MyAwesomeController()
有没有办法以不同的方式初始化 Controller ,而不需要传递 NSCoder
对象?
如果没有,我该如何创建这样一个对象来避免以下异常:
'NSInvalidArgumentException', reason: '*** -decodeObjectForKey: cannot be sent to an abstract object of class NSCoder: Create a concrete instance!'
非常感谢您
最佳答案
使用这样的东西,我也包含了一个属性作为演示:
class MyAwesomeViewController: UIViewController {
let someInt: Int
init(someInt: Int) {
self.someInt = someInt
super.init(nibName: nil, bundle: nil)
}
required init?(coder aDecoder: NSCoder) {
fatalError("Storyboard are a pain")
}
}
我喜欢以编程方式创建一切。
关于swift - 以编程方式初始化 ViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56089897/