我是iOS新手。我有一个导航栏按钮,点击它时应该执行我自己的功能。最好的方法是什么?
UIBarButtonItem *doneBarButtonItem=[[UIBarButtonItem alloc] init];
doneBarButtonItem.title=@"Done";
self.navigationItem.rightBarButtonItem = doneBarButtonItem;
[doneBarButtonItem release];
答案 0 :(得分:44)
一种方法是使用目标和操作进行初始化:
UIBarButtonItem *buttonHello = [[UIBarButtonItem alloc] initWithTitle:@"Say Hello"
style:UIBarButtonItemStyleBordered target:self action:@selector(sayHello:)];
另一种方法是在创建后设置目标和操作
[buttonHello setTarget:self];
[buttonHello setAction:@selector(sayHello:)];
Target是将被调用的对象的实例。在self的情况下,该方法将在该对象的实例上。
Action是将被调用的方法。通常,您使用IBAction对其进行装饰,以向设计者暗示它是一个动作。它编译为无效。
- (IBAction)sayHello:(id)sender
{
// code here
}
答案 1 :(得分:2)
您可以使用各种不同的初始化调用,在此处的“实例方法”部分中列出:
- (id)initWithBarButtonSystemItem:(UIBarButtonSystemItem)systemItem target:(id)target action:(SEL)action
- (id)initWithCustomView:(UIView *)customView
- (id)initWithImage:(UIImage *)image style:(UIBarButtonItemStyle)style target:(id)target action:(SEL)action
- (id)initWithTitle:(NSString *)title style:(UIBarButtonItemStyle)style target:(id)target action:(SEL)action
此外,您可以在此处查看正在使用的样本:
How to set target and action for UIBarButtonItem at runtime
希望这有帮助!