Как добавить UISegmentControl в UINavigationItem ..? - PullRequest
1 голос
/ 27 июля 2011

Как мне добавить UISegmentedControl в UINavigationItem? Я хочу создать UINavigationBar с сегментным контролем, который добавит заголовок панели навигации.

UISegmentedControl имеет два индекса.

Вот что у меня есть:

UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects:[UIImage imageNamed:@"grid.png"],[UIImage imageNamed:@"list.png"],nil]];
    [segmentedControl addTarget:self action:@selector(segmentedAction) forControlEvents:UIControlEventValueChanged];
    segmentedControl.frame = CGRectMake(0, 0, 90, 40);
    segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;
    segmentedControl.momentary = YES;
    [segmentedControl setTintColor:[UIColor clearColor]];

    UIBarButtonItem *segmentBarItem = [[UIBarButtonItem alloc] initWithCustomView:segmentedControl];    
    self.navigationItem.rightBarButtonItem = segmentBarItem;

Я положил его с правой стороны. Итак, также хочу поставить в середине панели навигации.

Это не работает, пожалуйста, дайте мне знать, если я сделал что-то не так.

Спасибо

1 Ответ

1 голос
/ 27 июля 2011

Вы почти у цели, вам просто нужно добавить сегментированный элемент управления в UINavigationItem и добавить его в UINavigationBar:

// This code is used for a custom navigation bar

UINavigationItem* newItem = [[UINavigationItem alloc] initWithTitle:@""];
[newItem setTitleView:segmentedControl];

// Assuming you already have a navigation bar called "navigationBar"
[navigationBar setItems:[NSArray arrayWithObject:newItem] animated:NO];

// No memory leaks please...
[newItem release];

или если вы хотите использовать существующий контроллер

// This is used for an existing navigation controller
[navigationController.navigationBar.topItem setTitleView:segmentedControl];
// or if you want to access through the root view controller of the nav controller
[rootController.navigationItem setTitleView:segmentedControl];

Это должно установить центральный вид панели навигации на сегментированный элемент управления.

Надеюсь, я смогу помочь!

РЕДАКТИРОВАТЬ: Если вам нужна дополнительная помощь, документация Apple по этим классам довольно тщательна:

UINavigationItem

UINavigationBar

...