Отрывок из вопроса:
Я действительно хочу изменить его на образец изображения вместо круга.
blockquote>кажется проблемой с:
openButton.layer.cornerRadius = 16;
Удаление этой строки должно дать вам фактическое изображение на кнопке.
Вот образец, который использует дочерние контейнеры в сценарии, подобном тому, который описывает Matt. Это использует дочерние контейнеры для выбора между различными конфигурациями базы данных.
Ключ здесь - то, что большая часть конфигурации совместно используется дочерними контейнерами (что совместно использованная часть принадлежит родительского контейнера),
Я оставил комментарий к блогу kzu, задав тот же вопрос. Это - позор, он не разъяснил пример использования для такой функции прежде, чем кодировать его.
Единственная вещь, о которой я мог думать, состоит в том, если Вы хотели разрешить различные типы от Вашего контейнера в различных частях Вашего приложения. Например, если бы у Вас была система записи порядка с двумя отдельными участками, и каждый раздел был идентичен за исключением того, что они должны были представить другой список продуктов, то Вы могли создать дочерний контейнер для каждого раздела и "переопределить" регистрацию Вашего репозитория продукта в каждом. Каждый раз, когда раздел пытался разрешить репозиторий продукта (или что-либо, что зависело от одного), это получит экземпляр, который Вы настраиваете в дочернем контейнере, а не родителе. Вид подобного переопределения виртуального метода.
Это могло бы быть путем от основы, но лучше, чтобы я мог придумать.