Добавление сегментированного управления с помощью панели навигации

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

спасибо

2 ответа

Вы хотите использовать Interface Builder или сделать это только в коде?

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

Если вы хотите выполнить это в коде, обратитесь к в этом разделе справочной библиотеки iPhone. Кажется, вам нужно установить свойство навигации titleView в свой сегментированный элемент управления, который является подклассом UIView, поэтому это полностью законно.


в viewDidLoad:

OBJ-с:

NSArray *segmentTitles = @[
 @"segment1",
 @"segment2",
];
UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:segmentTitles];
segmentedControl.selectedSegmentIndex = 0;
segmentedControl.autoresizingMask = UIViewAutoresizingFlexibleWidth;
// change the width from 400.0 to something you want if it needed
segmentedControl.frame = CGRectMake(0, 0, 400.0f, 30.0f);
[segmentedControl addTarget:self action:@selector(segmentChanged:) forControlEvents:UIControlEventValueChanged];
self.navigationItem.titleView = segmentedControl;

скор:

let segmentTitles = [
 "segment1",
 "segment2",
]
let segmentedControl = UISegmentedControl(items: segmentTitles)
segmentedControl.selectedSegmentIndex = 0
segmentedControl.autoresizingMask = UIViewAutoresizing.FlexibleWidth
// change the width from 400.0 to something you want if it needed
segmentedControl.frame = CGRectMake(0, 0, 400.0, 30.0)
segmentedControl.addTarget(self, action: "segmentChanged:", forControlEvents: UIControlEvents.ValueChanged)
self.navigationItem.titleView = segmentedControl

licensed under cc by-sa 3.0 with attribution.