我试图以编程方式定义一个UIBarButtonItem。它按照预期出现在导航栏中。但它没有调用动作,直到我进入IB并将一个条形按钮项拖入导航控制器对象并为其分配了didTapSearch动作。
我认为只能以编程方式定义UIBarButtonItems,而无需任何额外的IB工作。或者只有在导航控制器和/或视图控制器以编程方式创建时才可以使用?
还是我错过了再次在我的代码中设置委托?
UIBarButtonItem *searchBtn = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemSearch target:self action:@selector(didTapSearch:)] autorelease];
self.navigationItem.rightBarButtonItem = searchBtn;
答案 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];