проблема в TabBar Controller с более чем пятью элементами tabBar - PullRequest
0 голосов
/ 31 августа 2010

Я сталкиваюсь с несколькими проблемами при использовании tabBar с контроллерами навигации. Каждый элемент tabBar связан с отдельным контроллером навигации. Проблемы перечислены следующим образом:

1.В моей вкладке более пяти элементов tabBar, поэтому по умолчанию появляется больше элемента tabBar. Теперь, когда я нажимаю на элемент больше tabBar, остальные элементы появляются в виде таблицы, которая фактически является видом контроллера навигации (который по умолчанию). Теперь, когда я выбираю любую из строк, мой новый контроллер представления помещается в этот контроллер навигации. Я хочу, чтобы мой контроллер представления был контроллером навигации. Так что возникает ситуация, когда я помещаю контроллер навигации в мешок другой контроллер навигации. Компилятор запутался и ничего не делает.

2. Хотя я установил автоматическое изменение размера каждого контроллера контроллера панели вкладок, при вращении устройства ничего не происходит. Однако, когда я сохраняю только пять или менее элементов TabBar, автоматическое изменение размера работает отлично.

3. Я хочу, чтобы ImagView находился сверху во всем приложении, поэтому я прикрепил представление изображения к самому окну, а затем увеличил координату Y вида контроллера tabBar, чтобы панель навигации каждого вида контроллера tabBar начиналась чуть ниже. imageview.Все хорошо для портретного режима, но как только я поворачиваю устройство, изображение исчезает. И когда я снова перехожу в портретный режим, просмотр изображения не появляется, и вид контроллера tabBar начинается сверху.

Я пробовал это всеми способами (например, tabBar вместо контроллера tabBar и т. Д.), Но не смог добиться ничего полезного.

1 Ответ

0 голосов
/ 31 августа 2010
  1. Я никогда не слышал об этой проблеме раньше. Вы можете вставить какой-нибудь код? Кроме того, вы уверены, что вкладки на странице просмотра дополнительных страниц работают правильно?

  2. Для поворота TBC все корневые контроллеры представления каждой вкладки должны поддерживать вращение. В каждом из этих файлов убедитесь, что shouldRotateToInterfaceOrientation: возвращает YES для всех ориентаций (если вы используете шаблон iPhone VC по умолчанию, извлеките оператор if (interfaceOrientation == UIInterfaceOrientationPortrait) и соответствующие скобки).

  3. Я действительно делал это раньше, и поверьте мне, когда я говорю, что вы открываете банку с червями. Для этого вам нужно добавить TBC в качестве подпредставления представления, которое имеет вид изображения сверху. Вы должны вручную установить рамку TBC.view, чтобы не закрывать верхнее изображение. Лучший способ сделать это: в .xib для файла контейнера добавить изображение сверху, а под ним - другое. Соедините представление с кодом через IBOutlet и установите этот фрейм как TBC.view.frame. Затем программно добавьте TBC.view в качестве подпредставления.

    Однако в этом решении необходимо добавить метод willRotateToInterfaceOrientation: duration:, который вызывает одну и ту же функцию во всех контроллерах представления TBC, и все эти контроллеры представления должны быть делегатами навигации, которые вызывают viewWillAppear: и viewDisappear: вручную. Вращение также немного «липкое», поэтому будьте осторожны.

    Мое предложение: не помещайте статическое изображение вверх. Это вызывает много проблем и занимает много места на экране, особенно на меньшем экране iPhone. Посмотрите на приложение The Weather Channel, если хотите увидеть, как оно плохо выглядит.

Дайте мне знать, если у вас есть еще вопросы!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...