Innym fajnym rozwiązaniem jest zadeklarowanie nowego inicjatora jako convenience
inicjatora w następujący sposób:
convenience init( objectId : NSManagedObjectID ) {
self.init()
}
Jeśli w ogóle nie zadeklarujesz żadnych wyznaczonych inicjatorów w swojej podklasie, zostaną one odziedziczone automatycznie i możesz użyć ich self.init()
w wygodnym inicjatorze.
W przypadku UIViewController domyślna metoda init zadzwonić init(nibName nibNameOrNil: String!, bundle nibBundleOrNil: NSBundle!)
z nil
obu argumentów (Command na UIViewController daje te informacje).
TL; TR : Jeśli wolisz programistycznie pracować z UIViewController
s, oto kompletny przykład roboczy, który dodaje nowy inicjator z niestandardowym argumentem:
class MyCustomViewController: UIViewController {
var myString: String = ""
convenience init( myString: String ) {
self.init()
self.myString = myString
}
}