Я использую классы контроллера, которые не наследуются от UIViewController
. Невозможность произвольного вложения реальных контроллеров представлений в вашу иерархию пользовательского интерфейса - это печальная несправедливость в SDK, но я обнаружил, что даже с искусственными контроллерами реальной сложности разумно управлять. Я просто при необходимости просматриваю критические сообщения от реального корневого контроллера и структурирую код таким же образом, как если бы это был настоящий контроллер представления. Это в основном рекомендация Apple, также. (Не могу найти ссылку на документацию в данный момент.)
Если у вас есть множество управляемых представлений на подэкране, как это, вы, вероятно, могли бы создать очень гибкий класс MyViewController, который наследуется от NSObject, а затем MyBaseViewController, который наследует от UIViewController, который знает, как порождать MyViewControllers и настраивает все сообщения. соответственно для вас. (Мне самому этот уровень абстракции пока не нужен.)
Использование UIWindows под размер экрана не является стандартным решением, и я бы с осторожностью отнесся к этому. Точно так же, не пытайтесь просто пробиться вперед и в любом случае использовать UIViewControllers. Вы обнаружите, что если вы это сделаете, они будут иногда вести себя и иногда плохо себя вести, и вы потратите много времени, разбираясь с этим хрупким взаимодействием.