将自定义select器添加到UIBarButtonItem

我是一个iOS新手。 我有一个导航栏button,点击时应执行我自己的function。 什么是最好的方法来做到这一点?

UIBarButtonItem *doneBarButtonItem=[[UIBarButtonItem alloc] init]; doneBarButtonItem.title=@"Done"; self.navigationItem.rightBarButtonItem = doneBarButtonItem; [doneBarButtonItem release]; 

一种方法是初始化目标和行动:

 UIBarButtonItem *buttonHello = [[UIBarButtonItem alloc] initWithTitle:@"Say Hello" style:UIBarButtonItemStyleBordered target:self action:@selector(sayHello:)]; 

另一种方法是在创build之后设置目​​标和操作

 [buttonHello setTarget:self]; [buttonHello setAction:@selector(sayHello:)]; 

目标是将被调用的对象的实例。 在自我的情况下,该方法将在这个对象的这个实例上。

动作是将被调用的方法。 通常情况下,你用IBAction来装饰它,以向devise者暗示这是一个动作。 它编译为无效。

 - (IBAction)sayHello:(id)sender { // code here } 

您可以使用各种不同的初始化调用,在此处的“实例方法”部分中列出:

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIBarButtonItem_Class/Reference/Reference.html

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

另外,你可以在这里查看一个正在使用的示例:

如何在运行时为UIBarButtonItem设置目标和操作

希望这可以帮助!