UIViewController XIB в платформе iOS или зависимый проект - PullRequest
2 голосов
/ 07 января 2012

Я знаю, что подобного рода вопросы уже обсуждались ранее, но я не нашел однозначного ответа на вопрос, с которым я сталкиваюсь в данный момент.И это в библиотеке, как лучше отправить UIViewController подкласс со сложным представлением ?

Методы, которые я вижу:

  1. Поставьте также XIB и попросите пользователей вашего кода добавить его в свой проект.На мой взгляд, это нежелательно, потому что обслуживание становится кошмаром.Если вы добавляете контроллер представления в проект библиотеки, то вам необходимо добавить новый XIB в каждый проект, который использует библиотеку.

  2. Создайте представление в loadView / viewDidLoad и возьмите на себя всю ответственность за ручную работу.Это может быть чрезвычайно сложно, хотя для сложных иерархий представлений.

  3. Каким-то образом сгенерируйте ваш код loadView из вашего XIB во время компиляции.Звучит сложно, чтобы получить что-то, что могло бы сделать это правильно.

Что я не совсем понимаю, так это как Apple это делает.Например, для MessageUI фреймворка есть MFMailComposeViewController, который является довольно сложным представлением, но для него нет XIB (или, по крайней мере, я не знаю о нем, может быть, на самом деле?).Мне было бы интересно узнать, как Apple это делает - кто-нибудь знает?

1 Ответ

2 голосов
/ 07 января 2012

Они кодируют все с нуля, вручную, что, на мой взгляд, является лучшим выбором.Иногда InterfaceBuilder может действительно взломать ваш фрагмент, применяя неизвестные / плохо документированные настройки и т. Д., Плюс код менее переносим.Например, тот, кто имеет неофициальный набор инструментов для Linux, например, может быть не в состоянии использовать библиотеку без Interface Builder.Код должен быть написан разработчиком, чтобы его можно было скомпилировать с помощью всего лишь правильного, но минималистичного набора инструментов (компилятор + ассемблер + компоновщик), без зависимости от каких-либо IDE, SDK или других технологий, не относящихся строго к какой-либо части программирования.проект.

...