我正在使用编码添加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];
答案 0 :(得分:0)
对不起家伙傻错了
我在Dictionary
中传递了非对象值现在使用这个词典
[[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
}
全部谢谢