#ios #objective-c #cocoa-touch
#iOS #objective-c #cocoa-touch
Вопрос:
Мне интересно, как вызвать IBAction
из другого IBAction
. Что я хочу сделать, так это когда я касаюсь кнопки на previousPage
, изменить заголовок nextPage
кнопки. Другими словами, у меня есть эти IBActions
:
- (IBAction)nextPageButtonItemPressed:(UIBarButtonItem *)sender
{
...
}
- (IBAction)previousParageButtonItemPressed:(UIButton *)sender
{
//This is what i want to do
[self nextPageButtonItemPressed:sender.title = @"Next Page"];
}
Я также создал IBOutlet
of previousPage
.
@property (strong, nonatomic) IBOutlet UIToolbar *nextPageOutlet;
Но я не могу найти способ сделать это.
P.S. nextPage
Это кнопка в UIToolbar
.
Комментарии:
1. Это «методы».
IBAction
это просто семантический способ сообщить разработчику интерфейса, что метод может быть связан с действием.2. Прежде всего, спасибо за ваш ответ. Да, я понимаю, но я подумал, что, поскольку я могу написать внутри метода этот sender.title = @»bla bla»; если я могу вызвать sender для другого метода. Есть ли какой-либо способ сделать это?
3. Используя
sender
переменную, вы можете изменить только название кнопки, которая вызвала вызов метода. Если вам нужно изменить оба заголовка, вам нужно будет задать свойства.4. Это возможно более сложным способом, если вы используете IBOutletCollection UIButtons, затем выполните итерацию по ним, чтобы выяснить, какой из них не является sender, но намного проще / лаконичнее просто использовать свойство
Ответ №1:
Для этого вам необходимо иметь ваше UIButton
свойство как IBOutlet
.
Итак, что-то вроде:
@property (nonatomic, retain) IBOutlet UIBarButtonItem *previousButton;
@property (nonatomic, retain) IBOutlet UIBarButtonItem *nextButton;
- (IBAction)nextPageButtonItemPressed:(UIBarButtonItem *)sender
{
...
}
- (IBAction)previousPageButtonItemPressed:(UIBarButtonItem *)sender
{
self.nextButton.title = @"Next Page";
}
Комментарии:
1. Это было так просто! Мне пришлось создать выход для UIToolbar вместо UIBarButtonItem. Большое спасибо LuricaPanda! Я создаю это в заголовочном файле @property (сильный, неатомный) IBOutlet UIBarButtonItem *nextPageBarButtonItemOutlet; И я добавляю ваш код «self.nextPageBarButtonItemOutlet.title = @»Следующая страница»;» в метод, который я хочу!