【发布时间】:2018-06-16 11:53:57
【问题描述】:
我正在尝试创建一个 UINavigationController 的子类,它需要额外的依赖项。我还希望能够在初始化时创建和指定根视图控制器。我有这个代码:
init(rootVC: UIViewController, authUser: AppUser) {
self.authUser = authUser
super.init(rootViewController: rootVC)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
但是,在尝试初始化时,我收到此错误:
致命错误:使用未实现的初始化程序“init(nibName:bundle:)” 上课
我查看了其他 SO 答案,特别是 this one,它建议通过覆盖 init(nibName:bundle:) 方法来解决问题。但是,这意味着我无法正确注入用户依赖项。如何最好地解决这个问题?
【问题讨论】:
-
为什么不只是创建一个协议,定义您需要的依赖项并让您的自定义类符合它。
-
@RakshithNandish 这有什么帮助?我仍然需要以某种方式注入依赖项。简单地声明协议一致性不会进行任何注入。我只是声明该类将具有这些属性/功能。
标签: ios swift uikit subclass initializer