Ios 目标C-需要知道如何将另一个目标添加到按钮

Ios 目标C-需要知道如何将另一个目标添加到按钮,ios,objective-c,xcode,Ios,Objective C,Xcode,所以我有两个班,一等和二等。第一个类是UIViewController,第二个类是NSObject类。在头等舱我有一个按钮拨号按钮 在第二个类中,我调用了在第一个类中创建的方法changeMethod 此方法更改单击按钮时将调用的方法。它更改为的方法是SecondClass SecondClass方法中的方法 此changeMethod正是这样做的: [dialButton addTarget:secondClass selector:@selector(secondClassMethod)

所以我有两个班,一等和二等。第一个类是UIViewController,第二个类是NSObject类。在头等舱我有一个按钮拨号按钮

在第二个类中,我调用了在第一个类中创建的方法changeMethod

此方法更改单击按钮时将调用的方法。它更改为的方法是SecondClass SecondClass方法中的方法

此changeMethod正是这样做的:

[dialButton addTarget:secondClass selector:@selector(secondClassMethod)         
forControlEvents:UIControlEventTouchUpInside];
顺便说一下,拨号按钮是一个静态按钮。我做错了什么

编辑:我修复了上面的问题,但现在我的问题是:

按钮的目标方法已更改,但未调用目标方法

我从第二个类调用printPrompt方法

打印提示:

FirstClass *firstClass =[[FirstClass alloc]init];
[firstClass test];
测试:

调用test后单击按钮时,未调用secondClassMethod。。相反,程序崩溃了

第二类方法: FirstClass*FirstClass=[[FirstClass alloc]init]; [第一类设置字符串:@Test]

setString只更改UIText字段。我已经测试过了,设置字符串:有效


您发布的代码将向按钮添加额外的目标/操作。点击按钮时,可以在多个目标中调用多个方法


如果要用另一个目标/操作替换现有目标/操作,必须首先使用removeTarget:action:forControlEvents:方法删除现有目标/操作,然后使用发布的代码添加新目标/操作。

观察到的行为是什么?如果什么也没有发生,请在发送addTarget:消息时检查dialButton的状态。可能为零。如何检查拨号按钮的状态@Adameberbach是零还是零?向nil发送消息是可以的,但它没有任何作用。如果您的按钮不起作用,则可能在设置其目标时它不存在。如何检查它是否为零@AdameBerbach在其上设置断点并在调试器中查看它。好的。。。我这样做了,但现在它在单击时似乎仍然没有调用该方法。添加了更多代码。查看是否可以帮助发布firstClass和secondClass的方法头。我猜您的第二个ClassMethod iAction方法的方法签名是错误的。嗯,没有。我看不到第一类和第二类的标题。哦,实际的类。。那么你想要.h文件吗?如果你能参考我实际帖子上的评论的话。我的按钮是零。。我如何使它不为零?
SecondClass *secondClass = [[SecondClass alloc]init];
[dialButton removeTarget:self selector:@selector(firstClassMethod) forControlEvent: UIControlEventTouchUpInside];
[dialButton addTarget:secondClass selector:@selector(secondClassMethod)         
forControlEvents:UIControlEventTouchUpInside];