Как мне создать инициализацию для подкласса UIViewController, который я создаю программно в Swift?

#ios #cocoa-touch #uiviewcontroller #swift #ios8

#iOS #cocoa-touch #uiviewcontroller #swift #ios8

Вопрос:

Скажем, у моего UIViewController есть два свойства, var animal: String и var color: UIColor .

Как мне создать пользовательский init интерфейс, чтобы я мог легко создать это в коде?

Я хочу иметь:

 init(animal: String, color: UIColor) {
   self.animal = animal
   self.color = color
}
  

Но я получаю ошибку компилятора, что я не использую назначенный инициализатор. Что я делаю не так / как я должен делать это правильно?

Ответ №1:

Вызовите super.init() после установки этих свойств. Это должно сработать. Ваш метод должен выглядеть следующим образом:

 init(animal: String, color: UIColor) {
   self.animal = animal
   self.color = color
   super.init()
}
  

Комментарии:

1. Обычно в Swift super.init должен вызываться последним.

2. super.init() не является назначенным инициализатором UIViewController