У меня есть приложение для iPhone, которое находит поблизости магазины кофе, а затем отображает детали (адрес, часы работы, доступность WiFi) в ShopViewController. Я создал несколько других целей в проекте (например, супермаркет, ресторан), и каждый из них имеет немного другую информацию для отображения в ShopViewController. В супермаркете я хочу показать, продается ли алкоголь. В ресторане я хочу отображать время последнего заказа и так далее.Как создать отдельный NIB для каждой цели?
Мое текущее решение непросто поддерживать. У меня есть один общий NIB, с множеством UILabel
s для каждого случая. Несмотря на то, что в кофейнях нет информации «последнего заказа», я использую тот же NIB с «последним заказом» UILabel
. Все мои цели используют ярлык «title», но только один использует ярлык «алкоголь». Я использую только метки в целевых объектах, где они необходимы. UILabel
s настроены с пустой строкой, и когда я выложу представление, я игнорирую пустые метки. Но с 4-мя целями трудно отслеживать.
У моего ShopViewController есть несколько общих функций, поэтому я предполагаю, что должен создавать подклассы, такие как CoffeeShopViewController, которые наследуются от ShopViewController. Затем я бы использовал #ifdef
для загрузки правильного NIB для текущей цели. Затем я мог включить только соответствующий подкласс в каждую цель.
Это лучшее решение, или есть лучший способ справиться с этим?