+(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
}
我正在尝试为我在类方法中创建的按钮创建一个动作,但Xcode告诉我,操作需要是实例方法。这是否可以通过一些修改,或者我是否必须让我的按钮生成方法成为实例方法?
这里的viewController是我想用编程方式填充“settingsButton”的那个。 “settingsButtonForController”在我创建的UIGenerator类中
答案 0 :(得分:3)
在doSettings:
中定义viewController
并将其公开。
并在创建按钮时:
UIBarButtonItem* settingsButton = [UIBarButtonItem alloc] initWithTitle@"Settings"
style:UIBarButtonItemStyleBordered
target:viewController
action:@selector(doSettings:)];
我认为这个viewController
可能是您继承的UIViewController
项目中的不同视图控制器。
您应该在doSettings:
的所有子类中定义UIViewController
,并将其称为静态方法。