Да. Перепишите все свои подклассы UIView
как подклассы UIViewController
. Я сделал это с несколькими моими проектами, и это оказалось немного утомительным. Для моих проектов мне было проще всего создать новый проект Xcode и построить новую инфраструктуру. Затем создайте новые UIViewController
классы для каждого из моих старых UIView
классов. Затем я скопировал и вставил большую часть кода из старых UIView
классов в новые UIViewController
классы. Я сильно изменил self
на self.view
. Жизненный цикл UIViewController
немного сложнее, чем UIView, поэтому я переместил некоторый код инициализации из назначенного инициализатора в методы viewDidLoad
и viewWillAppear
в моих подклассах UIViewController
.
Ответ на комментарий: В моих приложениях многие страницы имеют уникальные интерактивные функции, поэтому я пишу уникальный подкласс UIViewController
для управления этими функциями. Некоторые страницы будут иметь одинаковые функции, но разный контент. Они будут просто использовать несколько экземпляров одного UIViewController
подкласса. Мой объект модели создаст эти подклассы UIViewController
и наполнит их соответствующим содержимым.
Другими словами, нет необходимости писать новый UIViewController
подкласс для каждой страницы. Только столько, сколько у вас есть уникальная функциональность на странице. Если ваша страница ничего не делает, вы можете просто использовать UIViewController
без подклассов.