Wie fügen Sie UIViewController
Unterklassen in Swift benutzerdefinierte Initialisierer hinzu ?
Ich habe eine Unterklasse erstellt UIViewController
, die ungefähr so aussieht:
class MyViewController : UIViewController
{
init(leftVC:UIViewController, rightVC:UIViewController, gap:Int)
{
self.leftVC = leftVC;
self.rightVC = rightVC;
self.gap = gap;
super.init();
setupScrollView();
setupViewControllers();
}
}
Wenn ich es ausführe, wird ein schwerwiegender Fehler angezeigt:
Schwerwiegender Fehler: Verwendung des nicht implementierten Initialisierers 'init (nibName: bundle :)' für die Klasse 'MyApp.MyViewController'
Ich habe an anderer Stelle gelesen, dass man beim Hinzufügen eines benutzerdefinierten Initialisierers auch überschreiben muss. init(coder aDecoder:NSCoder)
Lassen Sie uns das überschreiben init
und sehen, was passiert:
override init(coder aDecoder: NSCoder)
{
super.init(coder: aDecoder);
}
Wenn ich das hinzufüge, beschwert sich Xcode darüber self.leftVC is not initialized at super.init call
. Ich denke, das kann auch nicht die Lösung sein. Ich frage mich also, wie ich einer ViewController
Unterklasse in Swift benutzerdefinierte Initialisierer ordnungsgemäß hinzufügen kann (da dies in Objective-C kein Problem zu sein scheint).
MyViewController
?