Как импортировать IBActions из другого файла .h? - PullRequest
2 голосов
/ 26 сентября 2011

В моем приложении iOS есть много контроллеров представления, и в большинстве из них мне нужен точно такой же IBAction.

Таким образом, вместо написания одного и того же кода на всех контроллерах представления, можно создать отдельный файл .h с IBActions и затем импортировать его в viewcontroller.h?

Я пытался создать файл Actions.h и импортировать его с помощью команды "#import Actions.h" в файле ViewController.h, но при переходе в Interface Builder действия не отображаются. Есть ли способ сделать это ???

Ответы [ 4 ]

5 голосов
/ 26 сентября 2011

Определите метод в суперклассе:

@interface MyActionViewController: UIViewController
{
}

- (IBAction)theAction:(id)sender;

@end

Подкласс вашего контроллера представления из него:

@interface FirstViewController: MyActionViewController
{
}

@end
1 голос
/ 26 сентября 2011

Вы также можете сделать все это в Интерфейсном Разработчике.Вы можете сделать это с возможностью добавить «Объект» в ваш файл пера.В палитре со всеми объектами интерфейса есть куб с оранжевым кубом с надписью «Объект».

Поместите его на корневой уровень иерархии представления.

Изменитьпользовательский класс для имени вашего класса (звучит так, как будто это «Действия»).Как только вы измените имя с Object на имя класса, Interface Builder позволит вам получить доступ к любому IBAction для этого класса.

Подключите кнопку к IBAction этого пользовательского класса.

Вы можете сделать то же самое для любого другого файла пера, который должен использовать этот код кнопки, и это избавляет вас от необходимости создавать подклассы.

1 голос
/ 26 сентября 2011

Не импортировать, нужно наследовать. Создайте viewController с этим IBAction и наследуйте его в каждом viewController, который вы хотели бы использовать.

0 голосов
/ 22 марта 2016

Если кто-то пытается сделать это на Swift 2, вот как:

import UIKit

class Actions: UIViewController {

    @IBAction func button1(sender: AnyObject) {

    }

}

Теперь ViewController:

import UIKit

class ViewController: Menu_Swipes {

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...