+(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/