У меня есть необходимость создать пакет классов пользовательского интерфейса, который может быть включен в проект интеграции XCode4 разработчиком, а затем получить его экземпляр с помощью файла конфигурации в в сочетании с NSClassFromString - статический плагин . Я имел успех с созданием библиотек, которые содержат UIViews, которые разметки на основе кода. Сейчас я пытаюсь позволить разработчику создавать пользовательские интерфейсы на основе файлов XIB и других ресурсов. Я реализую самую базовую версию этого ... UIViewController загружает файл XIB, созданный непосредственно с помощью мастера "новый файл" в XCode4. Единственное изменение, которое я делаю, - это добавление метки к пользовательскому интерфейсу в XIB.
У меня проблемы с загрузкой xib. Если я включу xib в интеграционный проект , все будет хорошо. Когда я создаю UIViewController из библиотеки, он находит XIB в корне пакета приложения и загружает его. Тем не менее, это очень громоздко при сборке интеграционного проекта , я хотел бы иметь возможность просто ссылаться на библиотеку и не добавлять каждый xib в проект интеграции индивидуально. Кроме того, использование корня комплекта приложений нецелесообразно, поскольку отсутствует структура каталогов, которая могла бы облегчить использование нескольких статических плагинов . Я попытался создать папку, которую проект интеграции может включить во время его сборки, и xibs для статического плагина можно просто выгрузить в папку перед сборкой. Если я сделаю это, xib попадет в комплект приложения, но когда загружается класс UIViewController, он не может найти xibs. Мне не удалось закодировать решение, чтобы получить UIViewController для initWithNibName: bundle: правильно, когда XIB находятся в подпапке.
Моя последняя попытка была создать статическую структуру, используя эту статью: http://simplyitinc.blogspot.com/2011/04/creating-static-framework-in-xcode-4.html. Кажется, это дает мне фреймворк, на который я могу ссылаться, и xib находится в этом каталоге фреймворка, но ... xib не помещается в комплект приложений, когда я ссылаюсь на фреймворк. Мои классы доступны, но не могут загрузить xib, очевидно, потому что его нет в комплекте приложений.
Любое предложение о том, как это требование может быть выполнено?