Вопрос по ios4, xcode4.2, objective-c – как передать аргумент для селектора жестов

0

Я добавил жест к метке, и при касании я хотел бы вызвать showlbl, который будет принимать int в качестве аргумента, однако я получаю ошибку компилятора для:

UITapGestureRecognizer *gestlbl0 = [[UITapGestureRecognizer alloc] initWithTarget:self 
                                                action:@selector(showlbl:1)   ];

Спасибо!

Ваш Ответ

1   ответ
1

Это не работает таким образом. Вы можете указать только имя селектора, то есть имя метода, который должен быть вызван. Форма селектора (количество аргументов) является фиксированной и определяется классом, который вызывает ваш метод действия (в данном случае,UITapGestureRecognizer).

Для этого конкретного метода действия единственным и единственным аргументом метода действия будет объект типаUIGestureRecognizer *). Если у вас есть метод для доступа к другой переменной, вы должны объявить соответствующее свойство ivar / и сохранить там значение.

Как насчет идентификатора отправителя, могу ли я получить отправителя, в данном случае метку, к которой был привязан идентификатор, и проверить метку метки, например? Я не уверен, что понимаю ваше решение относительно ivar, как я могу проверить, какая метка была нажата, я предпочитаю иметь только один метод, который обрабатывает все метки в одном месте, вместо того, чтобы создавать метод для каждой метки, которая была нажата. Stk Stocki

Похожие вопросы