Как ограничить количество вкладок на UITabBarController? - PullRequest
11 голосов
/ 19 февраля 2011

У меня есть работающее приложение для iPhone с UITabBarController. Все отлично работает. Приложение имеет больше вкладок, чем может быть показано по всей ширине экрана, поэтому мы видим всего 5 вкладок (последняя из которых - вкладка «больше»). Дело в том, что мы хотим отодвинуть некоторые «менее интересные» вещи за вкладку «еще». Я знаю, что если бы у меня было только 2 контроллера представления, то я бы видел только 2 вкладки и т. Д., Пока не превысил 5 вкладок.

Как мы можем показать только 4 вкладки (3 плюс вкладка «еще») вместо 5?

Я предполагаю, что это невозможно, просто установив атрибут (что, безусловно, было бы удобно!), Поскольку я не могу найти что-либо в документах или, честно говоря, здесь, чтобы предложить иное.

За исключением реализации моей собственной вкладки "more" и снабжения контроллера панели вкладок только 4 контроллерами представления (последним из которых является мой собственный контроллер "more"), любые советы, хитрости или подсказки приветствуются. Спасибо!

Ответы [ 3 ]

3 голосов
/ 25 февраля 2011

Просто хотел обернуть это. В итоге я реализовал свой собственный контроллер «More» и снабдил UITabBarController всего четырьмя контроллерами представления, последним из которых был мой контроллер «More».

Пользовательский контроллер More - это чуть больше, чем общий подкласс UITableViewController, который я создаю при создании основных вкладок UITabBarController и связанных с ним контроллеров. Затем я добавляю заголовки строк и соответствующие UIViewControllers в массив в контроллере представления Больше. Когда эта вкладка видна и строка нажата, я просто нажимаю соответствующий контроллер представления.

Весь эффект выглядит полностью «стандартным», за исключением того, что у меня есть 4 вкладки вместо 5. Это было меньше хлопот, чем я думал, что будет также реализовать. Всегда бонус.

Надеюсь, это поможет кому-то в дальнейшем.

3 голосов
/ 19 февраля 2011

Это кажется невозможным со стандартным UITabBarController. Я также не думаю, что кто-то еще сталкивался с этой проблемой и уже решил ее для вас.

2 голосов
/ 19 февраля 2011

Вам либо придется создать подкласс UITabBarController, который может стать немного беспорядочным, либо просто написать свой собственный элемент управления панели вкладок, как вы упомянули.На самом деле другого пути нет, как упомянуто @blueberryfields.Пользовательские панели вкладок кажутся довольно распространенными при решении этой проблемы, и я предлагаю пойти по этому пути, если вы действительно хотите показывать только 3 вкладки одновременно.

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