Іншим приємним рішенням є оголошення нового ініціалізатора як convenience
ініціалізатора наступним чином:
convenience init( objectId : NSManagedObjectID ) {
self.init()
}
Якщо ви взагалі не заявляєте призначених ініціалізаторів у своєму підкласі, вони успадковуються автоматично, і ви можете використовувати їх self.init()
у своєму зручному ініціалізаторі.
У разі UIViewController метод ініціалізації за замовчуванням буде викликати init(nibName nibNameOrNil: String!, bundle nibBundleOrNil: NSBundle!)
з nil
обох аргументів (Command-Click на UIViewController дасть вам цю інформацію).
TL; TR : Якщо ви віддаєте перевагу програмній роботі з UIViewController
s, ось повний робочий приклад, який додає новий ініціалізатор із користувацьким аргументом:
class MyCustomViewController: UIViewController {
var myString: String = ""
convenience init( myString: String ) {
self.init()
self.myString = myString
}
}