未调用 UIButton 选择器
Posted
技术标签:
【中文标题】未调用 UIButton 选择器【英文标题】:UIButton selector not called 【发布时间】:2011-08-26 09:24:32 【问题描述】:我在一个类中有一个 UIButton。我想像这样为按钮设置一个目标。
[myController.dateButton addTarget:self action:@selector(showAction:) forControlEvents:UIControlEventTouchUpInside];
由于某种原因,当我按下按钮时,永远不会调用选择器。我尝试通过执行以下操作来调试问题,但 NSSet 得到 nil
NSSet *allTargets = [myController.dateButton allTargets];
关于我可能做错的任何建议?
选择器定义如下:
- (void)showAction:(id)sender
// Do stuff
【问题讨论】:
【参考方案1】:也许这就是解决方案,因为我不认为你的代码有什么问题。
当您将按钮声明为
UIButton* tempBtn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
永远不要在那个 btn 上调用发布。
[tempBtn release];//dont do this!!
我自己试过了,效果很好。
- (void)viewDidLoad
[super viewDidLoad];
UIButton* tempBtn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
tempBtn.frame = CGRectMake(50, 50, 50, 50);
[tempBtn addTarget:self action:@selector(hello:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:tempBtn];
- (void) hello:(id) sender
NSLog(@"helloooo");
【讨论】:
第一次可以正常工作,但是当这个东西在 tableview 单元格中并第二次绑定时就不行了...!?!以上是关于未调用 UIButton 选择器的主要内容,如果未能解决你的问题,请参考以下文章
uibutton 添加目标选择器方法在调用类而不是在被调用类中调用
使用带有两个参数的 UIButton addTarget 时无法识别的选择器
UIButton 的 IBAction 导致无法识别的选择器发送到实例错误 (iOS)
无法识别的选择器发送到 UIButton+AFNetworking.h 的实例(UIImageView+AFNetworking 也是)