Come si aggiungono inizializzatori personalizzati alle UIViewController
sottoclassi in Swift?
Ho creato una sottoclasse UIViewController
simile a questa:
class MyViewController : UIViewController
{
init(leftVC:UIViewController, rightVC:UIViewController, gap:Int)
{
self.leftVC = leftVC;
self.rightVC = rightVC;
self.gap = gap;
super.init();
setupScrollView();
setupViewControllers();
}
}
Quando lo eseguo ricevo un errore fatale:
errore irreversibile: utilizzo dell'inizializzatore non implementato 'init (nibName: bundle :)' per la classe 'MyApp.MyViewController'
Ho letto ovunque che quando si aggiunge un inizializzatore personalizzato si deve anche eseguire l'override, init(coder aDecoder:NSCoder)
quindi sovrascriviamolo init
e vediamo cosa succede:
override init(coder aDecoder: NSCoder)
{
super.init(coder: aDecoder);
}
Se aggiungo questo, Xcode se ne lamenta self.leftVC is not initialized at super.init call
. Quindi immagino che nemmeno questa possa essere la soluzione. Quindi mi chiedo come posso aggiungere correttamente inizializzatori personalizzati a una ViewController
sottoclasse in Swift (poiché in Objective-C questo sembra non essere un problema)?
MyViewController
?