Динамическая раскадровка или Xibs / Nibs

Наша компания разрабатывает довольно большое приложение для iPad. В конечном итоге мы хотим иметь возможность настраивать пользовательский интерфейс для каждого клиента (арендатора) и, возможно, даже для пользователя (этого клиента). Мы начали с HTML5, но перешли на родной.

Я проделал некоторое чтение по загрузке XML с сервера (или даже сгенерировал файлы XIB / NIB) и динамически добавил их в ваше приложение.

Теперь с iOS 5 (и даже дальше в 6) раскадровка играет большую роль.

Мои вопросы:
– Было бы лучше использовать (несколько?) Раскадровки или XIB?
– Каковы мои варианты для обоих, если я хочу предоставить динамический пользовательский интерфейс?

Я не ищу волшебную таблетку или дискуссию о HTML5 vs native, а только некоторую информацию о том, как я могу предоставить динамический интерфейс и какие методы могут помочь в этом.

мой ответ на ваши два вопроса:

  1. раскадровка отлично подходит для управления сценой; он создает визуальную связь между вашими различными сценами / представлениями. я предпочитаю использовать раскадровку для большей части моего интерфейса, насколько это возможно. однако в некоторых приложениях есть элементы, которые собирают существующие или многоразовые или иначе динамические XIB. я просто связываю их вместе с моими раскадными базами, загружая XIB в код в том месте, где я их хочу. поэтому мой окончательный ответ на ваш первый вопрос – «оба» , где, где это возможно, используются раскадровки, а XIB используются для динамических сцен / представлений.

  2. ваши варианты динамического пользовательского интерфейса включают в себя, по крайней мере, следующие два параметра (из которых, как указано выше, я предпочитаю второй):

    1. создавать весь код с использованием XIB-файлов и выполнять все переходы UI без раскадровки в коде
    2. создать столько пользовательского интерфейса, как вы знаете, останется относительно статическим с точки зрения отношений между viewControllers с раскадрой, а затем загрузите динамические части пользовательского интерфейса, используя initWithNibName: bundle:

наконец, вы можете использовать несколько раскадровки, если этого требует ситуация, и это может даже применяться к динамическому пользовательскому интерфейсу, независимо от того, исходит ли оно из повторно используемых компонентов, созданных в другом месте в раскадровке и поддерживается отдельно, или раскадровки XML (если вы посмотрите на источник раскадровки, просто XML под капотом), приобретенный от чего-то, что сгенерировано или где угодно. вы можете даже решить управлять своим пользовательским интерфейсом с помощью нескольких раскадровки на этапе проектирования, если ваше приложение будет иметь несколько сложных взаимосвязанных сцен-сцен диспетчера (например, каждая вкладка в UITabBarController может иметь свою собственную раскадровку, в которой каждый корневой контроллер сценария раскадровки подключен / загружен, когда выбирается вкладка).

StoryBoard весь путь! Я использую абсолютно не люблю раскадровки, но потом я стал использовать их, и теперь я их люблю. Раскадровка – это путь.

Interesting Posts
Давайте будем гением компьютера.