Контроллер добавляет UISegmentedControl
к навигационной панели. Сегментированный элемент управления добавляется к навигационной панели методом viewDidLoad
контроллера, но фактические сегменты создаются динамически после вызова viewDidLoad
.
Я не могу добиться автоматического изменения размера сегментов при отображении вида. Они все сжаты, , как в этом посте , хотя разрешение здесь не применяется. Если сегменты добавляются до того, как сегментированный элемент управления добавлен в правый элемент навигационной панели (нарушая динамическую природу кода), то они автоматически изменяют размер и выглядят нормально при отображении вида.
Ниже приведена урезанная версия моего кода. Что я пропустил?
@implementation MyController
- (void)viewDidLoad {
// segmentedControl is an ivar
segmentedControl = [UISegmentedControl alloc] initWithItems:[NSArray array]];
UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithCustomView:segmentedControl] autorelease];
self.navigationController.navigationBar.topItem.rightBarButtonItem = barButtonItem;
}
- (void)someMethodCalledAfterViewDidLoad {
[segmentedControl insertSegmentWithTitle:@"a title"
atIndex:0
animated:NO];
}
@end