Intereting Posts
Как проверить, поддерживает ли устройство пользователя и разрешает использование iBeacon и работает ли bluetooth? iAd баннер в расширении Share? Получение сообщения EXC_BAD_ACCESS со следующим кодом UILabel обновляет текст, но не удаляет старый текст Пользовательская кнопка UITableViewCell и RowSelected (iOS / Monotouch) идиоматический способ перечисления NSArray как по индексу, так и по элементу Предупреждение: присвоение 'NSError * __ strong **' из 'NSError * __ autoreleasing **' NavigationBar назад кнопка странное поведение и не работает путь к файлу из NSData Разница между «keyChain» и «iCloud keychain» в iOS Есть ли способ, к которому можно получить доступ к выведенному объекту, если мы никогда не используем указатель назначения? Могу ли я замедлить или остановить физику в SpriteKit? com.apple.gamed сбой при удалении игры Изменить UIPageViewControllerOptionInterPageSpacingKey на ходу? iOS локализованные строковые константы для временных символов («MINUTE (S)», «HOUR (S)» и т. д.)

iOS 5 Поддерживайте постоянную панель вкладок в нескольких сценах

Я разрабатываю свой первый продукт Apple на iOS 5. Каков наилучший способ поддерживать согласованный объект UITabBar в нескольких сценах, когда я не использую UITabBarController? Это стандартный UIViewController. У меня есть панель вкладок, работающая так же, как я хочу, на одной сцене, и я хочу, чтобы она могла дублировать ее на мои другие 4-ий сцены.

Предполагая, что вы действительно не хотите использовать UITabViewController , тогда ваш делегат приложения поддерживает ссылку на ваш глобальный объект UITabBar и при переключении с представления на просмотр вы можете просто запросить этот экземпляр и добавить его в иерархию представлений.

Используйте API UIAppearance для установки ваших визуальных свойств во всех экземплярах UITabBar .

 id appearance = [UITabBar appearance]; [appearance setBackgroundImage:someImage]; [appearance setTintColor:someTintColor]; //... 

Вот список свойств, которые можно установить в прокси UIAppearance :

Я думаю, что этот инновационный ответ будет использоваться для вас
Физическая кнопка

Это очень просто и легко сделать (я сделал это в нескольких приложениях).

  1. Создайте приложение на основе представления. Давайте назовем единственный VC, созданный таким образом как «MainViewController».
  2. Создайте свою верхнюю панель с изображениями, кнопками и тем, что у вас в MainViewController.xib. Установите цвет фона верхнего уровня UIView как «Очистить цвет».
  3. Не добавляйте ничего к этому xib.
  4. Создайте View Controllers и Xibs для всех видов, которые вам нужно показать (включая начальное / первое представление). Назовем их MyViewController1 & MyViewController2.
  5. Пусть у MainViewController есть «связь» с MyViewController1. Значение MainViewController будет иметь переменную / свойство члена типа MyViewController1.
  6. Тоже для MyViewController2.
  7. Мгновенное действие MyViewController1 & 2 в методе «viewDidLoad» MainViewController.
  8. Добавьте их как подпункты MainViewController.
  9. Добавьте скрытое свойство в NO для исходного представления (возможно, MyViewController1) и YES для другого.
  10. На этом этапе вы увидите верхнюю панель MainViewController и представление MyViewController1 под ней.
  11. Когда вам нужно переключиться на MyViewController2, просто установите для его скрытого свойства значение НЕТ, а скрытое свойство MyViewController1 – YES.
  12. Если вы хотите оживить переход от MyViewController1 к MyViewController2, добавьте CABasicAnimation / CATransition в CALayers в MyViewController1 и MyViewController2 (а не MainViewController). Тогда ваш верхний бар (нарисованный на MainViewController) останется устойчивым к скале, и MyViewController1 & 2 переключится / оживится под ним.
  13. Однако, если вы хотите, чтобы верхняя панель исчезла, а новая верхняя панель появлялась вместе со следующим представлением, просто присоедините CATransition / CAAnimation и т. Д. К CALayer MainViewController.

Не стесняйтесь задавать любые вопросы.

Что вы можете сделать, так это использовать представление, чтобы обернуть контент, который вы хотите быть динамичным. Затем вы можете добавить первый видимый вид в качестве подзадачи этого представления. Затем вам нужно будет оживить переход между представлениями (текущим видом и тем, который вы хотите изменить), чтобы имитировать изменение контроллера вида. Вот код, который я использовал, который делает это между двумя представлениями. Мое представление «оболочка» называется представлением содержимого. Вам нужно будет интегрировать это с помощью той панели вкладок, которую вы установили …

 [ contentView addSubview:view2 ]; [ view1 removeFromSuperview ]; CATransition *animation = [ CATransition animation ]; [ animation setType:kCATransitionPush ]; [ animation setSubtype:kCATransitionFromRight ]; [ animation setDuration:0.5 ]; [ animation setTimingFunction:[ CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut ] ]; [[ contentView layer ] addAnimation:animation forKey:@"currentTransition" ]; 

Попробуйте!

Это не стандартный способ, но если вы действительно хотите предоставить функциональность tabBar в своем приложении, не используя tabBar.

Создайте 4-5 пользовательских кнопок (с изображениями) внизу каждого вида (размер 199 X 49), чтобы полностью поглотить нижнюю часть представления (например, tabBar). Создайте только одно из действий кнопок в одном представлении все отключены. Также функция кнопки, которую вы даете, должна изменить изображение, чтобы показать, что нажата текущая вкладка.