UIButton addTarget到另一个类的方法

时间:2011-06-29 09:40:18

标签: objective-c cocoa-touch uibutton iphone-sdk-3.0 selector

我正在使用编码添加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];

1 个答案:

答案 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
}

全部谢谢