3

В UIViewController, я хотел бы показать две вкладки в a UINavigationBar. Я хочу, чтобы UINavigationItems имел аналогичное поведение с UITabBarItems в UITabBarController. Я хочу, чтобы NavBar был видимым на обеих вкладках контроллера просмотра, и я хочу изменить цвет заголовка вкладки в navBar, если выбрана вкладка.Вкладка-стиль UINavigationBar iOS 8

Есть простой и элегантный способ удобно установить текст/selectedText или изображение/selectedImage и создать UINavigationItems, которые имеют поведение, аналогичное UITabBarItems, в том числе возможность иметь нав бар пространство элементы равномерно, так же, как в a UITabBarController?

Было бы замечательно, если бы я мог установить это, как это может быть сделано в TabBar: UITabBarItem *tabBarItem = [[UITabBarItem alloc] initWithTitle:title image:titleBlack selectedImage:titleRed];

Цель состоит в том, чтобы иметь две вкладки, которые меняют цвет, если они выбраны, и они будут равномерно распределены по бар. Я знаю, что могу сделать что-то простое, например, добавить два элемента в navBarArray, но чтобы они равномерно распределялись по всему экрану для всех экранов, как бы я это сделал? Есть ли элегантное решение?

enter image description here

Этот пример показывает первую выбранную вкладку. Если я выберу вторую вкладку, я хочу, чтобы Tab2 был красным, а Tab1 - черным. Это всего лишь текст, но если мне нужно создать образ для этого, я сделаю это.

Этот вопрос не дубликат из многих вопросов по S.O. которые относятся к отображению как UITabBarController, так и UINavigationController в том же приложении. Это другое, потому что я не хочу UITabBarController (у меня уже есть тот, который делает что-то еще, но я не хочу слишком затруднять мой вопрос). Я просто хочу подражать этому поведению внутри UINavigationBar. Пожалуйста, пожалуйста, пожалуйста, не говорите мне, что я не должен так поступать. Это просто еще один способ сказать: «Мне не хочется помогать тебе разобраться».

Я пробовал искать чистые, простые, элегантные решения. Я их не нашел. Полный пример будет оценен. Спасибо =)

+1

Есть ли причина, вы не могли бы использовать UITabBar? что вам нужно в UINavigationController? Стиль навигации отличается от двух, поэтому мне интересно, как вы ожидаете, что все взаимодействие будет работать. –

+0

У меня уже есть UITabBarController. В одном из вкладок tabBar я хочу воспроизвести такое же поведение в NavBar, прикрепленном к вершине представления, видимого как на вкладках 1, так и на tab2. Поэтому, если вкладки в панели вкладок называются A, B и C, я хочу, чтобы вкладка C имела вкладки Tab1 и Tab2 в Nav. Отвечает ли это на ваш вопрос? – jungledev

+1

Почему бы не создать другой набор UITabBarControllers для каждой вкладки? –

ответ

3

Я придумал решение, которое работает достаточно хорошо для меня. Я создал специальную метку с 2 кнопками и представление с высотой 1, чтобы действовать как разделитель. Я переместил UITableView вниз, чтобы прикрепить верх его к UIView Вы можете легко добавить дополнительные кнопки, если вы хотите иметь больше чем 2.

  1. В viewDidLoad метода: self.navigationController.navigationBarHidden = YES;

  2. В viewDidAppear методе : [self.navigationController setNavigationBarHidden:YES animated:YES];

  3. Создайте заказ UILabel, закрепите ведущий, верхний и задний к супервирту, и установите требуемое ограничение по высоте.

  4. Создание пользовательского UIView с высотой ограничением 1 (чтобы действовать в качестве визуального разделителя между пользовательской панелью навигации и UITableView, контактом заднего и передним краем к SuperView, и пин-кода нижнего пространства UIView к нижнее пространство таможни UILabel. Установите желаемый цвет разделителя.

  5. Создание двух UIButton с, перетащите их в этикетку, и установить эти ограничения:

    -контактных UIButton центра Y к центру Y от UILabel

    -контактного трейлинг BUTTON1 к передней кромке button2 в друг с другом и к горизонтальному центру надтаблицы

    -контактные 1 Кнопка в начальном и конечных button2 к SuperView в

    -контактный верхней части UITableView в нижней части UILabel

  6. Установите UIButton цвет, чтобы изменить при выборе и устанавливать свои цели, как вы бы с любым UIButton

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

Вот как это выглядит:

enter image description here

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