2009-10-02 3 views
7

im new для программирования на iphone, поэтому, если бы вы могли мне помочь, я был бы признателен - я был повсюду в Интернете и не мог найти ответ на этот вопрос.iPhone: добавление сегментированного элемента управления на панель инструментов вместо кнопок в контроллере навигации?

моя текущая установка как этот

навигации контроллера в MainWindow.xib> Вид в навигационном контроллере в MainWindow.xib вызывает RootViewController.xib> RootViewController.xib содержит один TableView.

я могу затем загрузить в панель инструментов, используя следующий код в RootViewController.m

UIBarButtonItem *buttonOne = [[UIBarButtonItem alloc] initWithTitle:@"One" 
    style:UIBarButtonItemStyleBordered target:self action:@selector(buttonOnePushed)]; 
UIBarButtonItem *buttonTwo = [[UIBarButtonItem alloc] initWithTitle:@"Two" 
    style:UIBarButtonItemStyleBordered target:self action:@selector(buttonTwoPushed)]; 

NSArray *barArray = [NSArray arrayWithObjects: buttonOne, buttonTwo, nil]; 
[buttonOne release]; 
[buttonTwo release]; 

[self setToolbarItems:barArray animated:YES]; 

[self.navigationController setToolbarHidden:NO animated:YES]; 

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

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

спасибо, Дэйв.

ответ

20

Решение этой проблемы заключается в (1) создать UISegmentedControl со всеми его кнопками и т.д., а затем (2) создать UIBarButtonItem с использованием initWithCustomView:(UIView *)view инициализатора и обеспечивают сегментированное управление в качестве переменной для этого. Затем добавьте элемент панели бара на панель инструментов, используя массив, как и в вашем примере кода.

Убедитесь, что вы настроили цель и действие для вашего сегментированного контроллера, и я рекомендую установить его стиль на UISegmentedControlStyleBar. Он будет выглядеть так же, как в нижней части приложения «Карты». Надеюсь, это то, что вы ищете.

+0

Как получить, какой сегмент выбран в сегментированном селекторе управления? – Neelesh

+0

проверить его выбранное свойство SegmentIndex –

11

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

NSArray *segItemsArray = [NSArray arrayWithObjects: @"Settings", @"Templates", @"Notes", nil]; 
UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:segItemsArray]; 
segmentedControl.frame = CGRectMake(0, 0, 200, 30); 
segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar; 
segmentedControl.selectedSegmentIndex = 2; 
UIBarButtonItem *segmentedControlButtonItem = [[UIBarButtonItem alloc] initWithCustomView:(UIView *)segmentedControl]; 
UIBarButtonItem *flexibleSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; 
NSArray *barArray = [NSArray arrayWithObjects: flexibleSpace, segmentedControlButtonItem, flexibleSpace, nil]; 

[self setToolbarItems:barArray]; 
+0

спасибо за это сэр, работал как шарм –

 Смежные вопросы

  • Нет связанных вопросов^_^