【发布时间】:2012-06-04 20:41:22
【问题描述】:
我有两个类,一个View 和一个ViewController. View 创建一个按钮如下:
_button = [[UIButton alloc] initWithFrame:CGRectMake(50, 0, buttonImage.size.width, buttonImage.size.height)];
[_button setImage:buttonImage forState:UIControlStateNormal];
[_button setImage:[UIImage imageNamed:@"btn_learn_focus_pad"] forState:UIControlEventTouchUpInside];
[_button addTarget:self action:nil forControlEvents:UIControlEventTouchUpInside];
[_someView addSubview:_button];
在ViewController中,我实例化loadView中的视图后,添加一个选择器如下:
[view.button addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];
选择器没有被调用。我试图在ViewController 按钮的位置NSLog 并打印出一个零。我怀疑 ARC 正在释放按钮。然而,_button 是一个 strong 指针 (@property)。所以我不确定为什么会这样。
我该如何解决这个问题?
【问题讨论】:
-
你为什么要传递
nil作为-addTarget:action:forControlEvents:的选择器?这是无效的,我很惊讶它没有抛出参数断言。 -
另外,您正在为无效状态设置图像。
UIControlEventTouchUpInside是 1UIControlStateHighlighted,它只是 1。 -
UIControlEventTouchUpInside有效。当您触摸按钮时。
标签: objective-c uibutton automatic-ref-counting selector