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 в сегментированный элемент управления. Это работает для вас?

  • Изменение цвета выбранного сегмента управления
  • UISegmentedControl с режимом направления или стрелки
  • Сегментированный элемент управления для переключения нескольких табличных представлений
  • Как установить фоновое изображение UISegmentedControl через раскадровку?
  • Как добавить UISegmentControl в UINavigationItem ..?
  • Как отменить выбор сегмента в Сегментированной кнопке управления до тех пор, пока не будет снова нажата
  • Как установить цвет оттенка текста только выбранного сегмента с помощью Swift?
  • iOS 7 - UISegmentedControl не остался выделенным?
  • UISegmentedControl изменяет только цвет текста при повторном просмотре ViewController
  • Использовать iOS 6 Style Segmented Control в iOS 7?
  • Переключение ViewControllers с UISegmentedControl в iOS5
  • Interesting Posts

    Создание csv-файла из массива данных в iOS

    Отображаемые номера, знаки оператора и сумма в UILabel

    setNeedsDisplayInRect: вызывает обновление всего представления

    Как получить yyyy-mm-dd hh: mm: ss format from "2015-06-26T00: 10: 00 + 01: 00" в быстрой

    Полный список разрешений приложений iOS

    как передать сообщение или строку с устройства iphone на парные часы

    Как получить Image.xcassets под контролем источника?

    АБР эквивалент для устройства iOS

    Ошибка компиляции Swift протокола при использовании TARGET_INTERFACE_BUILDER

    iPhone: Скрыть клавиатуру на приложении, введя фон или изображение, исчезли

    Ошибка получения Неизвестный класс PFImageView в файле Interface Builder для синтаксического анализа

    Можно ли управлять эквалайзером системы iOS (чтобы я мог влиять на воспроизведение звука из других приложений)

    Интернет-служба Amazon S3 отключена

    Методы делегата CLLocationManager не получаются (интегрированы карты Google)

    Раскрыть классы зависимостей в Swift Framework

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