2015-04-07 3 views
0

У меня есть несколько контроллеров, каждый со своей кнопкой меню (UIBarButton, добавленный в раскадровку). Теперь я хочу связать все это с одной функцией @IBAction в своем суперклассе (суперкласс одинаковый для всех контроллеров представления с помощью этой кнопки).Невозможно связать кнопку бара с @IBAction в суперклассе

Теперь я соединился @IBOutlet с до суперкласса прежде, но это не похоже на работу с @IBAction с, даже если функция не является частным, и это, безусловно, является частью суперкласса (я рефакторинга, ранее он был в каждом классе, который только сделал menuButtonTap()@IBAction (вызов метода в суперкласс).

Любые идеи?

ответ

3

Я решил эту проблему, создав учетную @IBAction на суперкласс, и давая им то же имя, что и те, которые я создаю в подклассах. Затем я удалил их в подклассах. Это оставляет «свисающее r из «раскадровки», согласно Xcode, но я знаю, что он есть.

0

Вы можете сделать это, как и при добавлении действия к кнопке UITabbar из класса subview.

Предполагая БТН является UIBarButtonItem,

[btn setTarget:self.superview]; 

[btn setAction:@selector(menuButtonTap:)] 
+0

Это решение, но у меня есть элементы в раскадровке, а не в моих классах. В моем решении я добавляю только один элемент '@ IBAction' в суперкласс. – vrwim

0

Вы используете __unused ключевое слово, случайно? Если вы делаете IBAction не будет отображаться в раскадровке (я использую Xcode 6.3.2)

- (IBAction)actionBack:(__unused id)sender; 
vs 
- (IBAction)actionBack:(id)sender; 

Чтобы сделать его показать и выбираемые извлекал __unsused ключевое слово.

+0

Нет, не используйте '__unused'. Однако я нашел обходной путь. Проверьте мой ответ. – vrwim

+0

ОК. Понимаю. хорошо, вот что случилось со мной, поэтому я хотел поделиться, если это поможет кому угодно. – Zsolt