我想像这样快速呈现一个详细视图控制器
let detailController = MyDetailUIViewController(nibName: "MyDetailUIViewController", bundle: NSBundle.mainBundle(), data:myData)
self.navigationController?.pushViewController(detailController, animated:true)
我遇到的问题是如何为MyDetailViewController编写初始化程序:
class MyDetailUIViewController: UIViewController {
private var data: MyData
init(nibName nibNameOrNil: String!, bundle nibBundleOrNil: NSBundle!, data:MyData) {
self.data = data
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
}
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
我收到一个错误,我的数据属性未在super.init调用中初始化。谁能解释我如何做到这一点?我确定我可以将数据属性设为可选,并在初始化后将其传递给我,但是肯定有一种方法可以使这项工作正常进行。
如果声明data
变量为非可选变量,则必须确保所有init
方法都将其初始化。在您的课程中情况并非如此,因为
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
不会激起您的兴趣data
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句