UIButton addTarget 到另一个类的方法

Posted

技术标签:

【中文标题】UIButton addTarget 到另一个类的方法【英文标题】:UIButton addTarget to method of another class 【发布时间】:2011-06-29 09:40:18 【问题描述】:

我正在使用编码添加 UIButton 并将目标分配给其他类的方法 我尝试以下代码,但不适用于我。

一类

-(void)myMethod
//some code
    SEL myFunction = @selector(myFunction:);
    [obj refresh:[[NSDictionary alloc] initWithObjectsAndKeys:self,@"target",circleBtnAct,@"action",nil]
                  action:circleBtnAct];
    [addContactView addSubview:myWorldView];
//some code

-(IBAction)myFunction:(id)sender
    NSLog(@"... %d",[sender tag]);

二等

-(void)refresh:(id)sender action:(SEL)action
//some code
    [btn addTarget:[sender objectForKey:@"target"] action:action forControlEvents:UIControlEventTouchDown];
//some code

我也试过 [btn addTarget:[sender objectForKey:@"target"] action:[sender objectForKey:@"action"] forControlEvents:UIControlEventTouchDown];

但它不起作用..应用程序崩溃在线addTarget

如果我在第二类中创建第一类对象然后使用这一行,它就可以正常工作[btn addTarget:oneObj action:@selector(myFunction:) forControlEvents:UIControlEventTouchDown];

【问题讨论】:

崩溃日志说什么?可以加吗? 感谢 Deepak 解决了.. 愚蠢的错误我在字典中传递了非对象值 【参考方案1】:

对不起,伙计们犯了愚蠢的错误

我在字典中传递非对象值

现在使用这个字典[[NSDictionary alloc] initWithObjectsAndKeys:self,@"target",[NSValue valueWithPointer:@selector(circleBtnAct:)],@"action",nil]

-(void)myMethod
//some code
    SEL myFunction = @selector(myFunction:);
    [obj refresh:[[NSDictionary alloc] initWithObjectsAndKeys:self,@"target",[NSValue valueWithPointer:@selector(circleBtnAct:)],@"action",nil]
                  action:circleBtnAct];
    [addContactView addSubview:myWorldView];
//some code

二等

-(void)refresh:(id)sender action:(SEL)action
//some code
    [btn addTarget:[sender objectForKey:@"target"] action:[[sender objectForKey:@"action"] pointerValue] forControlEvents:UIControlEventTouchDown];
//some code

谢谢大家

【讨论】:

以上是关于UIButton addTarget 到另一个类的方法的主要内容,如果未能解决你的问题,请参考以下文章

UIButton 上的 addTarget 不起作用

UIButton不在其他类的函数中执行操作

UIButton.addTarget 无法正常工作。似乎是一个时间问题?

UIButton 的 Swift addTarget 在 UIView 中不起作用

UIButton 类参考文档上的 addTarget 方法

自定义 UIView:未调用 UIButton addTarget