В настоящее время я изучаю Objective-C, пришедший из Java-среды, где у меня нет проблем с созданием GUI-приложений. Таким образом, способ, которым я думаю о некоторых из этих проблем, может быть немного неправильным. Вот вопрос (прошу прощения за проступок) -
Какова цель UIViewController?
Позвольте мне привести конкретный пример. Допустим, вы создаете приложение с одним представлением, которое использует кучу графических виджетов. Вы можете выложить их вручную в коде или использовать InterfaceBuilder. В других языках, таких как Java и HTML, я всегда кодирую вещи вручную и не использую инструменты с графическим интерфейсом, так как я обнаружил, что они не позволяют мне выполнять необходимые настройки. Сказав это, Я слышал, что InterfaceBuilder - это Сладость (делают ли эксперты это вручную?) . Допустим, я выложил кучу виджетов в XIB-файл и затем хочу загрузить этот UIView в коде.
Мне кажется (я ошибаюсь?), Что для требуется , чтобы использовать UIViewController для правильного отсоединения UIView , но для целей моих приложений, Я не пользуюсь самим контроллером (давайте оставим MVC здесь на минуту). Так нужно ли мне создавать UIViewController для этого простого приложения с одним просмотром?
Давайте расширим это на случай приложения с двумя UIView. В этом случае у меня есть приложение с двумя представлениями, одно из которых полностью настраиваемое, без виджетов (drawRect здесь я приду), а другое представление является виджет-тактическим (настройки и т. Д.). Я хочу иметь возможность поменять местами представления, одно из которых я создал в IB, а другое - чистый код. Я создаю пользовательский UIView следующим образом:
eyesView = [[EyesView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];")
В случае вида виджета я использую:
settingsView = (SettingsView *)[[[UIViewController alloc] initWithNibName:@"SettingsView" bundle:nil] view];
Но я не могу найти способ пробудить XIB без использования этого фиктивного UIViewController, который мне не нужен. Это возвращает меня к первоначальному вопросу - какова цель UIViewController? Это всего лишь изящество, которое Apple включила, чтобы позволить разработчикам начать работать с навигационными панелями и им подобным легко (я так не думаю)?
Есть ли лучший способ сделать все это?