2010-11-10 3 views
1

У меня есть приложение для iPhone, которое находит поблизости магазины кофе, а затем отображает детали (адрес, часы работы, доступность WiFi) в ShopViewController. Я создал несколько других целей в проекте (например, супермаркет, ресторан), и каждый из них имеет немного другую информацию для отображения в ShopViewController. В супермаркете я хочу показать, продается ли алкоголь. В ресторане я хочу отображать время последнего заказа и так далее.Как создать отдельный NIB для каждой цели?

Мое текущее решение непросто поддерживать. У меня есть один общий NIB, с множеством UILabel s для каждого случая. Несмотря на то, что в кофейнях нет информации «последнего заказа», я использую тот же NIB с «последним заказом» UILabel. Все мои цели используют ярлык «title», но только один использует ярлык «алкоголь». Я использую только метки в целевых объектах, где они необходимы. UILabel s настроены с пустой строкой, и когда я выложу представление, я игнорирую пустые метки. Но с 4-мя целями трудно отслеживать.

У моего ShopViewController есть несколько общих функций, поэтому я предполагаю, что должен создавать подклассы, такие как CoffeeShopViewController, которые наследуются от ShopViewController. Затем я бы использовал #ifdef для загрузки правильного NIB для текущей цели. Затем я мог включить только соответствующий подкласс в каждую цель.

Это лучшее решение, или есть лучший способ справиться с этим?

ответ

0

Если у вас есть один подкласс для каждого из ваших разных интерфейсов, вы можете иметь каждый подкласс, который загружает точный нуль, который он хочет, избегая операторов #if pre compiler. Но я думаю, что в конечном итоге это будет проще, если вы сохраните один наконечник, который будет использоваться каждым подклассом контроллера представления, и просто сохраните целевой код для конкретных целей в этих подклассах. Создание пучка наконечников будет полезно только вам, если настройка, которую вы должны сделать для наконечника, действительно обширна.

 Смежные вопросы

  • Нет связанных вопросов^_^