如何从其他.h文件导入IBActions?

时间:2011-09-26 04:07:27

标签: iphone xcode ipad

我的iOS应用程序上有很多视图控制器,其中大多数都需要完全相同的IBAction。

因此,不是在所有视图控制器中编写相同的代码,是否可以使用IBActions创建一个单独的.h文件,然后在viewcontroller.h上导入?

我尝试创建一个Actions.h文件并使用ViewController.h文件中的命令“#import Actions.h”导入它,但是当我转到Interface Builder时,操作不会显示。有没有办法做到这一点?

4 个答案:

答案 0 :(得分:5)

在超类中定义方法:

@interface MyActionViewController: UIViewController
{
}

- (IBAction)theAction:(id)sender;

@end

从中对视图控制器进行子类化:

@interface FirstViewController: MyActionViewController
{
}

@end

答案 1 :(得分:1)

不导入,您需要继承。使用该IBAction创建一个viewController,并在您想要使用的每个viewControllers中继承它。

答案 2 :(得分:1)

您实际上也可以在Interface Builder中完成所有操作。您可以使用选项将“对象”添加到nib文件中。在包含所有界面对象的面板中,有一个带有标记为“对象”的橙色立方体。

将其放在视图层次结构的根级别上。

将自定义类更改为类的名称(听起来像是“操作”)。将名称从Object更改为类的名称后,Interface Builder将允许您访问该类的任何IBAction。

将按钮连接到此自定义类的IBAction。

对于需要使用此按钮代码的任何其他nib文件,您可以执行相同的操作,这样您就不必再进行子类化。

答案 3 :(得分:0)

如果有人试图在Swift 2上这样做,那就是:

import UIKit

class Actions: UIViewController {

    @IBAction func button1(sender: AnyObject) {

    }

}

现在是ViewController:

import UIKit

class ViewController: Menu_Swipes {

}