UISegmentedControl, встроенный в UINavigationBar / Item

Я хотел бы встроить UISegmentedControl где-нибудь в верхнюю панель UINavigationController .

Не проблема встраивать его в UIBarButtonItem и устанавливать его как левый или правый barButtonItem.

Я могу понять этот подход, имея дело с экранной недвижимостью iPhone. Я, тем не менее, делаю это в Popover на iPad, и в верхней панели есть «много» вертикального пространства. Если я добавлю segmentedControl как левый или правый barButtonItem, он будет уменьшен, так что я не могу видеть текст на моей кнопке сегмента, он становится шириной кнопки «Готово» и т. Д. Если я попытаюсь добавить ее в navigationItem TitleView будет отображаться полностью вправо и все еще сокращается больше, чем мой 3-сегментный элемент управления, который может отображать текст.

Как я могу добавить UISegmentedControl в центр UINavigationController который обертывает мой контент popovers.

Надеюсь, кто-то может мне помочь 🙂 Спасибо заранее.

One Solution collect form web for “UISegmentedControl, встроенный в UINavigationBar / Item”

Зачем вам нужно вводить элемент управления в заголовок заголовка? iPad имеет гораздо больше экранной недвижимости, чтобы рассмотреть вопрос о его размещении на виду ниже.

— РЕДАКТИРОВАТЬ —

Я попробовал это сам, и он работает. Вот код, устанавливающий контроллер popover:

 - (IBAction) showPopover: (id) sender { TestController *testController = [[TestController alloc] initWithStyle: UITableViewStylePlain]; UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController: testController]; UIPopoverController *controller = [[UIPopoverController alloc] initWithContentViewController: navController]; [controller presentPopoverFromBarButtonItem: sender permittedArrowDirections: UIPopoverArrowDirectionAny animated: YES]; controller.delegate = self; [testController release]; [navController release]; } 

Вот реализация TestController:

 - (id) initWithStyle: (UITableViewStyle) style { if ( (self = [super initWithStyle: style]) ) { UISegmentedControl *ctrl = [[UISegmentedControl alloc] initWithFrame: CGRectZero]; ctrl.segmentedControlStyle = UISegmentedControlStyleBar; [ctrl insertSegmentWithTitle: @"One" atIndex: 0 animated: NO]; [ctrl insertSegmentWithTitle: @"Two" atIndex: 0 animated: NO]; [ctrl insertSegmentWithTitle: @"Three" atIndex: 0 animated: NO]; [ctrl sizeToFit]; // Any of the following produces the expected result: self.navigationItem.titleView = ctrl; //self.navigationItem.leftBarButtonItem = [[[UIBarButtonItem alloc] initWithCustomView: ctrl] autorelease]; [ctrl release]; } return self; } 

Вот результат:

alt textalt text

В моем коде нет трюков, кроме отправки sizeToFit в сегментированный элемент управления. Это работает для вас?

  • Swift: программное изменение моих элементов UISegmentedControl
  • Добавить сегментированный элемент управления в панель навигации и сохранить заголовок с помощью кнопок
  • Как я могу использовать сегментированный элемент заполнения пространства на панели инструментов в приложении iOS?
  • Странное поведение с UISegmentedControl и UIAppearance
  • MonoTouch: UISegmentedControl Выберите сегмент, который уже выбран
  • Изменение цвета выбранного сегмента управления
  • Событие изменения UISegmentedControl не срабатывает в iOS5
  • Проблема с выравниванием текста при установке пользовательского шрифта
  • Ошибка цвета UISegmentedControl - цветные изображения отображаются на симуляторе, а не на устройстве
  • UISegmentedControl поддерживает соотношение сторон изображения
  • UISegmentedControl tintColor
  • Interesting Posts

    Библиотека Poco 1.4.6 Xcode 5 для iPhone Simulator

    Как я могу программным образом определить, является ли URL-адрес универсальной ссылкой или просто обычным веб-адресом?

    Каковы различия между NSURLConnection и ASI-HTTP-Request?

    Пробудите приложение в определенное время в iOS

    Почему renderInContext намного медленнее, чем рисовать на экране?

    Почему я не могу изменить пользовательский класс моего UITableView?

    Как я могу зеркалировать UIBezierPath?

    Получите День со дня в iOS sdk

    Как правильно обрабатывать создание и обновление для отношений realm.io

    Использование необъявленного идентификатора AFHTTPClient

    Ошибка JSON при отправке JSON

    Предварительный просмотр музыки из музыкального магазина iTunes в приложении iOS

    Facebook OAuth в Google App Engine с iOS

    Ошибка Bluemix Push Plugin для сборки Cordova iOS

    MFMailComposeViewController не работает при настройке шрифта с прокси-сервером UIAppearance

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.