Я создаю пару фреймворков для наших клиентов, которые будут предоставлять некоторую логику и интерфейс для взаимодействия с программным обеспечением нашей компании.
На базовом уровне это выглядит так:
Client app
--->Customized Framework
--->Base Framework
В Base Framework
у нас есть «стандартные» версии каждого из наших классов и пользовательского интерфейса.В Customized Framework
мы подклассируем многие из этих файлов, чтобы сделать их настраиваемыми для приложения конкретного клиента.
Проблема, с которой я столкнулся, заключается в том, что у нас есть архив xcassets внутри Base Framework
, который имеет многоИконки пользовательского интерфейса и другие изображения.Поскольку мы подклассируем многие из наших классов контроллеров представлений, нам необходимо создать для них новые раскадровки, поскольку класс контроллера представлений должен меняться внутри раскадровки.
Когда я копирую раскадровку для этого конкретного контроллера вCustomized Framework
и загрузить его, он не может загрузить все ресурсы изображений, на которые имеются ссылки из архива xcassets в Base Framework
.
Это достаточно легко исправить программным способом с помощью [UIImage imageNamed:inBundle:compatibleWithTraitCollection:]
, но есть способобозначить, какой набор изображений поступает из самой IB?
Еще лучше, есть ли способ использовать пользовательский интерфейс раскадровки суперкласса для подкласса без клонирования раскадровки и изменения класса внутри IB?Это решило бы и эту проблему (и избавило бы меня от дублирования).