如何为在 class 方法中创建的对象创建 IBAction
How to create IBAction for object created in class method
+(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
}
我正在尝试为我在 class 方法中创建的按钮创建一个动作,但 Xcode 告诉我动作必须是实例方法。这是否可以通过一些修改,或者我必须让步并使我的按钮生成方法成为实例方法?
这里的 viewController 是我想以编程方式填充我的 "settingsButton" 的一个。 "settingsButtonForController" 在我制作的 UIGenerator class 中
在viewController
中定义doSettings:
并使其成为public。
在创建按钮时:
UIBarButtonItem* settingsButton = [UIBarButtonItem alloc] initWithTitle@"Settings"
style:UIBarButtonItemStyleBordered
target:viewController
action:@selector(doSettings:)];
我假设这个 viewController
可能是您项目中继承自 UIViewController
的不同视图控制器。
您应该在调用此静态方法的 UIViewController
的所有子类中定义 doSettings:
。
+(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
}
我正在尝试为我在 class 方法中创建的按钮创建一个动作,但 Xcode 告诉我动作必须是实例方法。这是否可以通过一些修改,或者我必须让步并使我的按钮生成方法成为实例方法?
这里的 viewController 是我想以编程方式填充我的 "settingsButton" 的一个。 "settingsButtonForController" 在我制作的 UIGenerator class 中
在viewController
中定义doSettings:
并使其成为public。
在创建按钮时:
UIBarButtonItem* settingsButton = [UIBarButtonItem alloc] initWithTitle@"Settings"
style:UIBarButtonItemStyleBordered
target:viewController
action:@selector(doSettings:)];
我假设这个 viewController
可能是您项目中继承自 UIViewController
的不同视图控制器。
您应该在调用此静态方法的 UIViewController
的所有子类中定义 doSettings:
。