UIBarButton 不执行动作
Posted
技术标签:
【中文标题】UIBarButton 不执行动作【英文标题】:UIBarButton not executing Action 【发布时间】:2013-09-01 10:22:18 【问题描述】:我遇到了一个问题:我在我的 UiNavigation 控制器中以编程方式创建了一个 UIBarButton。但是,我希望它在按下时发出警报。但是,当我使用带有自定义文本的自定义栏按钮时,它不起作用:
self.navigationItem.rightBarButtonItem = self.editButtonItem;
UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithTitle:@"Subscribe" style:UIBarButtonItemStyleDone target:nil action:@selector(subscribe:)];
self.navigationItem.rightBarButtonItem = addButton;
但是当我做一个普通的条形按钮时,它工作正常:
self.navigationItem.rightBarButtonItem = self.editButtonItem;
UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:@selector(subscribe:)];
self.navigationItem.rightBarButtonItem = addButton;
这里是空白:
-(void)subscribe:(id)sender
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Highscore" message:@"" delegate:nil cancelButtonTitle:@"Dismiss" otherButtonTitles:nil, nil];
[alert show];
提前致谢, 拉菲
【问题讨论】:
【参考方案1】:替换您在初始化调用中作为target:
传递的nil
[[UIBarButtonItem alloc] initWithTitle:@"Subscribe"
style:UIBarButtonItemStyleDone
target:nil <---
action:@selector(subscribe:)];
self
。你的 alloc init 应该是这样的:
[[UIBarButtonItem alloc] initWithTitle:@"Subscribe"
style:UIBarButtonItemStyleDone
target:self
action:@selector(subscribe:)];
发给 nil 的消息不会产生影响 ;-)
【讨论】:
【参考方案2】:target
必须是 self
,而不是 nil
。否则没有人收到该操作!
【讨论】:
以上是关于UIBarButton 不执行动作的主要内容,如果未能解决你的问题,请参考以下文章