2015-12-21 1 views
0

У меня есть UISegmentedControl, который содержит 3 сегмента. После запуска моего приложения, приложение автоматически запускается в сегменте 1. Я хотел бы мое приложение для запуска в сегменте 3. Я не хочу, чтобы просто выбрать индекс массива сегмента, как так:Перемещение по сегментированному сегменту управления по заголовку сегмента

self.segmentedControl.selectedSegmentIndex = 2; 

Я хотел бы мой взгляд на переход в сегмент, который содержит определенный заголовок:

if (self.segmentControl.title isEqualToString:@"SomeTitle") { 
    //Do something 
} 

Есть ли способ сделать это?

ответ

0

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

Что-то вроде этого:

#define SomeTitle_Index 0 
#define SomeOtherTitle_Index 1 
#define AnotherTitle_Index 2 

Тогда выбирая их будет так:

[self.segmentedControl setSelectedSegmentIndex:SomeOtherTitle_Index]; 

И проверить индекс:

if (self.segmentedControl.selectedSegmentIndex == SomeOtherTitle_Index){ 
    //Do something 
} 
0

Вы можете явно назвать сегментированный контроль valueChanged способ действия.

Например, у вас есть метод действия ValueChanged как

(IBAction)segmentIndexChanged:(UISegmentedControl *)sender { 
    if (sender.title isEqualToString:@"SomeTitle") { 
    //Do something 
    } 
} 

Тогда вызов метода будет

self.segmentedControl.selectedSegmentIndex = 2; 
[self segmentIndexChanged:self.segmentControl]; 
0

1) Для выбора velue по умолчанию в интерфейсе строителя просто снимите флажок выбран свойство индекса.

0
int index=-1; 
    for (int i=0; i<3; i++) { 
     if ([[segment titleForSegmentAtIndex:i] isEqualToString:@"SomeTitle"]) { 
      index=i; 
     } 
    } 
    segment.selectedSegmentIndex=index;