我想在迅速提出一個詳細視圖控制器,像這樣實例化和推視圖控制器編程自定義初始迅速
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調用初始化。任何人都可以解釋我怎麼能做到這一點?我確信我可以使我的數據屬性可選,並在初始化後傳遞它,但肯定有一種方法可以使這個工作。
因此,我從這個拿走然後是我的數據屬性HAS是可選的給定實現init(coder aDecoder:NSCoder!)的要求? – nwales 2014-10-28 15:06:28
是的,就是這一點。如果無法將其初始化爲空:'private var data:MyData = MyData()' – zisoft 2014-10-28 15:11:12