2012-03-07 3 views
0

Я изменяющий одно приложение iPhone,UISegmentedControl: Невозможно вызвать метод в ИО 5,0

, когда я меняю значение сегментной кнопки,

Он должен вызвать метод,

- (void) setSelectedSegmentIndex:(NSInteger)index 

Который я переопределил в своем классе.

enter image description here

Там нет Нет IBAction связаны с сегментами.

В ios 4.3 он получает вызов. Но, в ios 5.0 он не называется.

Вот его ResultUnitSwitch.h файл

@interface ResultUnitSwitch : UISegmentedControl { 

    id <ResultUnitDelegate> delegate; 

    MCUnit *activeUnit; 

    NSArray *units;    
} 


There is a method call stack for ios 4.3 

enter image description here

Итак, почему его называют в прошивкой 4.3, а не прошивкой 5.0 того же проекта, что-то изменилось в UISegmentedControl

ответ

1

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

Вы можете перезаписать Init-метод (initWithCoder:, если вы используете XIBs), чтобы добавить метод из подкласса в качестве цели события:

[self addTarget:self action:@selector(action:) forControlEvents:UIControlEventValueChanged]; 
+0

Спасибо будет попробовать .. –