Учитывая, что у вашего контроллера просмотра нет ниба или раскадровки, вы не должны использовать initWithCoder в Swift. Обратите внимание эту информацию из документации UIViewController:
Обсуждение
Это назначенный инициализатор для этого класса.
Указанный файл ниба не загружается сразу. Он загружается при первом просмотре представления контроллера. Если вы хотите выполнить дополнительную инициализацию после загрузки файла nib, переопределите метод viewDidLoad и выполните там свои задачи.
Если вы указываете nil для параметра nibName и вы не переопределяете метод loadView, контроллер вида ищет файл nib с использованием других средств. См. NibName.
Если ваше приложение использует раскадровку для определения контроллера вида и связанных с ним представлений, ваше приложение никогда не будет инициализировать объекты этого класса напрямую. Вместо этого, диспетчеры представлений либо создаются раскадрой либо автоматически с помощью iOS, когда segue запускается, либо программно, когда ваше приложение вызывает метод instantiateViewControllerWithIdentifier: При создании экземпляра контроллера вида из раскадровки iOS инициализирует новый контроллер представлений, вызывая его метод initWithCoder:. iOS автоматически устанавливает свойство nibName в файл nib, хранящийся внутри раскадровки.
Дополнительные сведения о том, как контроллер представления загружает его представление, см. В разделе Управление ресурсами в контроллерах представления.
Вот что говорит Управление ресурсами об инициализации программно.
Initializing View контроллеры Программного Если контроллер представления распределяет свои ресурсы программно создать пользовательский метод инициализации, специфичные для вашего контроллера представления. Этот метод должен вызывать метод init суперкласса, а затем выполнять любую инициализацию, специфичную для класса.
В общем, не пишите сложные методы инициализации. Вместо этого реализуйте простой метод инициализации, а затем предоставите свойства для клиентов вашего контроллера просмотра для настройки его поведения.
Ваше название и тег говорит 'Swift', в то время как ваш код' Objective-C' –
Вы можете немного уточнить этот вопрос? Вы заявляете, что инициализируете контроллер вида в Swift и настоящий код, показывающий инициализацию с использованием цели-c. В любом случае документы указывают, что init coder - «Возвращает объект, инициализированный из данных в данном unarchiver. (Обязательно)« Вы не поставляете кодер в своей цели-c. Вы также можете получить сообщение об ошибке, связанной с необходимостью добавления @objc перед классом Swift. –
Сделано редактирование, чтобы уточнить. –