ios - 如何为在类方法中创建的对象创建 IBAction

标签 ios objective-c class uibarbuttonitem ibaction

+(UIBarButtonItem*) settingsButtonForController:(UIViewController*) viewController{
    UIBarButtonItem* settingsButton = [UIBarButtonItem alloc] initWithTitle@"Settings"
        style:UIBarButtonItemStyleBordered
        target:self
        action:@selector(doSettings:)];
    //...customize appearance of button
    return settingsButton;
}

-(IBAction) doSettings:(id)sender{
    //...the functionality for the settings button
}

我正在尝试为我在类方法中创建的按钮创建一个 Action ,但 Xcode 告诉我 Action 必须是实例方法。这是否可以通过一些修改来实现,或者我是否必须让我的按钮生成方法成为实例方法?

这里的 viewController 是我想以编程方式填充我的“settingsButton”的一个。 “settingsButtonForController”在我制作的 UIGenerator 类中

最佳答案

定义 doSettings:viewController并公开。
并在创建按钮时:

 UIBarButtonItem* settingsButton = [UIBarButtonItem alloc] initWithTitle@"Settings"
        style:UIBarButtonItemStyleBordered
        target:viewController
        action:@selector(doSettings:)];

我假设这 viewController可能是你项目中不同的 View Controller 继承自 UIViewController .
你应该定义doSettings:UIViewController 的所有子类中你调用这个静态方法。

关于ios - 如何为在类方法中创建的对象创建 IBAction,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34842321/

相关文章:

iphone - 仅在一个 View 上更改导航栏

iphone - 很难理解toValue, byValue of CABasicAnimation, ios

ios - 用户触摸注释时出现无法识别的选择器崩溃

ios - 使用 openssl 的 RSA 加密,使用 PKCS1 填充的加密文本的可变长度

ios - 如何从雅虎天气预报 XML 文档中获取图像 url?

ios - 在 App Store 和 Enterprise 上分发 iOS 应用程序

ios - 将文档子目录中的图像加载到 UICollectionViewCell

具有静态成员的 C++ 模板类 - 对所有类型的类都相同

c++ - C++ 中的继承 : define variables in parent-child classes

c# - : base()代码是什么