я это ниже метод делегата, который принимает stickerURLString в качестве входных данных:Как передать параметр строки другому методу с помощью селектора кнопок?
- (void)selectedSticker:(NSString *)stickerURLString {
//...
[self.stickerPreviewButton addTarget:self action:@selector(sendStickerPreviewButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
//...
}
И селектор вызывает этот метод sendStickerPreviewButtonPressed:
- (void)sendStickerPreviewButtonPressed: (NSString *)stickerURLString {
[self.delegate InputFunctionView:self sendSticker:stickerURLString];
}
Как вы можете видеть, чтобы сделать эту работу как и ожидалось, я должен перейти на stickerURLString от selectedSticker метод sendStickerPreviewButtonPressed.
Я попытался это:
[self.stickerPreviewButton performSelector:@selector(sendStickerPreviewButtonPressed:) withObject:stickerURLString];
вместо этого:
[self.stickerPreviewButton addTarget:self action:@selector(sendStickerPreviewButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
Но я получил "оканчивающийся неперехваченное исключение NSException типа" ошибка.
Так кто знает, как передать параметр строки другому методу с помощью селектора кнопок?
Возможный дубликат [Приложить параметр к действию button.addTarget в Swift] (http://stackoverflow.com/questions/24814646/attach-parameter-to-button-addtarget-action-in-swift) –
объявить глобальную переменную и присвоить значение внутри вашего метода. –
@AnuradhS Да, мне кажется, что мне нужно использовать глобальную переменную, хотя я стараюсь избегать этого, поскольку мой код довольно сложный. Благодаря! – SanitLee