Как добавить изображение и элемент кнопки системной панели в UISegmentedControl? - PullRequest
1 голос
/ 13 сентября 2011

У меня есть UISegmentedControl в качестве элемента правой кнопки панели навигации.Это достигается с помощью следующего кода ...

UISegmentedControl *segmentedControl = [ [UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects:@"Segment1",@"Segment2",nil]];

[segmentedControl addTarget:self action:@selector(segmentClicked) forControlEvents:UIControlEventValueChanged];  //Where segmentClicked is the method for segment click action

segmentedControl.frame = CGRectMake(0, 0, 90, 35);

UIBarButtonItem *rightBaritem = [ [UIBarButtonItem alloc] initWithCustomView:segmentedControl];

[segmentedControl release];

self.navigationItem.rightBarButtonItem = rightBaritem;

[rightBaritem release]; 

Приведенный выше код в порядке, и он будет отображать сегментированный элемент управления с двумя сегментами " Segment1 " & " Segment2".

Но я хочу показать изображение вместо Сегмент1 и кнопку системной панели (скажем UIBarButtonSystemItemAdd) вместо Сегмент2 .

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

UISegmentedControl *segmentedControl = [ [UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects:[UIImage imageNamed:@"<image_name.image_type>"],???????,nil]];

Но я не знаю, как включить UIBarButtonSystemItemAdd вместо ???????.

Заранее спасибо ..

1 Ответ

1 голос
/ 09 мая 2012

Этот код может решить вашу проблему. Это решило мою проблему, с которой я столкнулся одновременно. Но не думаю, что это точная проблема. Я получил желаемое, которое мне нужно отобразить. Это отлично работает с двумя кнопками.

UISegmentedControl *doneButton = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObject:@"Done"]];
        doneButton.momentary = YES; 
        doneButton.frame = CGRectMake(240, 7.0f, 70.0f, 30.0f);
        doneButton.tintColor = [UIColor blackColor];
        [doneButton addTarget:self action:@selector(Done:) forControlEvents:UIControlEventValueChanged];
        [menustyle addSubview:doneButton];
        [doneButton release];

        doneButton = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObject:@"Close"]];
        doneButton.momentary = YES; 
        doneButton.frame = CGRectMake(10, 7.0f, 70.0f, 30.0f);
        doneButton.tintColor = [UIColor blackColor];
        [doneButton addTarget:self action:@selector(Krishna:) forControlEvents:UIControlEventValueChanged];
        [menustyle addSubview:doneButton];
        [doneButton release];
...