UISegmentedControl: не удалось вызвать метод в ios 5.0 - PullRequest
0 голосов
/ 07 марта 2012

Я изменяю одно приложение для iPhone,

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

Следует вызвать метод,

- (void) setSelectedSegmentIndex:(NSInteger)index

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

enter image description here

Нет IBAction, связанного с сегментами.

В ios 4.3 вызывается. Но в ios 5.0 он не называется.

Вот его ResultUnitSwitch.h file

@interface ResultUnitSwitch : UISegmentedControl {

    id <ResultUnitDelegate> delegate;

    MCUnit *activeUnit;

    NSArray *units;             
}


There is a method call stack for ios 4.3

enter image description here

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

1 Ответ

1 голос
/ 07 марта 2012

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

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

[self addTarget:self action:@selector(action:) forControlEvents:UIControlEventValueChanged];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...