UIBarbuttonItem 没有调用动作方法

Posted

技术标签:

【中文标题】UIBarbuttonItem 没有调用动作方法【英文标题】:UIBarbuttonItem not calling action method 【发布时间】:2014-07-21 16:10:20 【问题描述】:

我正在使用此代码添加导航栏按钮。

UIColor *green = [UIColor colorWithRed:0.1 green:0.7 blue:0.2 alpha:1.0];
self.navigationItem.rightBarButtonItem = [KHFlatButton barButtonWithTitle:@"Go Pro!" backgroundColor:green];
self.navigationItem.rightBarButtonItem.action =@selector(goProButtonTapped);

按钮出现了,但它没有调用它的动作方法。

- (void) goProButtonTapped

    NSLog(@"Go Pro button Tapped");

请帮忙!

【问题讨论】:

【参考方案1】:

你还应该设置目标:

self.navigationItem.rightBarButtonItem.target = self;

您还可以使用自定义视图创建条形按钮项:

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
UIColor *green = [UIColor colorWithRed:0.1 green:0.7 blue:0.2 alpha:1.0];
button.backgroundColor = green;
[button addTarget:self action:@selector(goProButtonTapped) forControlEvents:UIControlEventTouchUpInside];
[button setTitle:@"Go Pro!" forState: UIControlStateNormal];
UIBarButtonItem *customBarItem = [[UIBarButtonItem alloc] initWithCustomView:button];

【讨论】:

尝试用目标和动作初始化按钮。 不工作。您能否提供代码以添加具有背景颜色和操作方法的导航栏项按钮。 使用此代码 Action 被调用,但 bg 颜色不显示。我最终添加了按钮背景图片。 你可以尝试使用 setBackgroundImage:forState: 方法。

以上是关于UIBarbuttonItem 没有调用动作方法的主要内容,如果未能解决你的问题,请参考以下文章

UIBarButtonItem 几乎忽略了每一个动作

IOS swift UIBarButtonItem 动作

没有为 UIBarButtonItem 调用 iOS 选择器

UIBarButtonItem 仅在按下足够长的时间时才会触发动作

抓取了一个 UIBarButtonItem 的动作

如何在 Swift 中为 UIBarButtonItem 设置动作