Еще одно приятное решение - объявить ваш новый инициализатор в качестве 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
}
}