UIBarButtonItem以编程方式

时间:2011-06-23 16:21:20

标签: iphone objective-c ios interface-builder uibarbuttonitem

我试图以编程方式定义一个UIBarButtonItem。它按照预期出现在导航栏中。但它没有调用动作,直到我进入IB并将一个条形按钮项拖入导航控制器对象并为其分配了didTapSearch动作。

我认为只能以编程方式定义UIBarButtonItems,而无需任何额外的IB工作。或者只有在导航控制器和/或视图控制器以编程方式创建时才可以使用?

还是我错过了再次在我的代码中设置委托?

UIBarButtonItem *searchBtn = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemSearch target:self action:@selector(didTapSearch:)] autorelease];
self.navigationItem.rightBarButtonItem = searchBtn;

3 个答案:

答案 0 :(得分:1)

尝试这种方式 在标题中,声明barButtonItem

proximityButton= [[UIBarButtonItem alloc] 
                  initWithTitle:@"Nearby Locations"                                            
                  style:UIBarButtonItemStyleBordered 
                  target:self 
                  action:@selector(addToProximity)];
self.navigationItem.leftBarButtonItem = proximityButton;

你可以拿出行动的:(id)发件人部分

答案 1 :(得分:0)

您可以按照action:编程方式以编程方式指定UIBarButtonItem方法。

在您使用target:指定的对象类中实施操作方法。

-(void) didTapSearch:(id) sender
{
  UIBarButtonItem *searchBtn = (UIBarButtonItem*)sender;
}

答案 2 :(得分:0)

为其添加颜色。

searchBtn.tintColor = [UIColor blackColor];