Как центрировать UISegmentControl на панели инструментов в верхней части UIPopoverController - PullRequest
1 голос
/ 01 августа 2011

Я видел несколько разных постов на эту тему, но я не могу заставить их работать. Я в основном имею UITableView и хочу кнопки сортировки наверху контроллера поповера. Я следовал за этим постом: Панель инструментов UIPopoverController сверху , чтобы начать. В моем контроллере, который является rootViewController для navigationController, я могу создать UISegmentControl и поместить его сверху. Однако, это не похоже на изображение в том, что это не по центру. Возможно, потому что способ, которым я получаю это в поповере, находится в viewDidLoad поповера следующим образом:

   UISegmentedControl *topSegmentControl = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects:@"One", @"Two", @"Three", @"Four", nil]];
    topSegmentControl.backgroundColor = [UIColor clearColor];
    topSegmentControl.segmentedControlStyle = UISegmentedControlStyleBar;
    UIBarButtonItem *toolBarCustom = [[UIBarButtonItem alloc] initWithCustomView:topSegmentControl];
//    UIBarButtonItem *spaceItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
    self.navigationItem.leftBarButtonItem = toolBarCustom;

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

 UISegmentedControl *topSegmentControl = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects:@"BottomOne", @"BottomTwo", @"BottomThree", nil]];
//    topSegmentControl.backgroundColor = [UIColor clearColor];
    topSegmentControl.segmentedControlStyle = UISegmentedControlStyleBar;
    UIBarButtonItem *toolBarCustom = [[UIBarButtonItem alloc] initWithCustomView:topSegmentControl];
    UIBarButtonItem *spaceItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
    NSArray *array = [NSArray arrayWithObjects:spaceItem, toolBarCustom, spaceItem, nil];
    [navController setToolbarItems:toolBarCustom];
    [navController setToolbarHidden:NO];

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

Подводя итог, я не уверен, где вы бы инициализировали панель инструментов или элементы barbutton для поповера с навигационным контроллером, как в примере. Я также не уверен, как центрировать данные. Спасибо.

1 Ответ

2 голосов
/ 01 августа 2011

Вам, вероятно, лучше всего подойдет, просто установив UISegmentedControl в качестве titleView вашего контроллера корневого представления navigationItem.

...