Iphone 从代码中调用iAction方法
我有一个按钮findTarget\u Btn,我想在它上面调用一个方法moreDetails。 在viewDidLoad中,我正在写作Iphone 从代码中调用iAction方法,iphone,objective-c,cocoa-touch,Iphone,Objective C,Cocoa Touch,我有一个按钮findTarget\u Btn,我想在它上面调用一个方法moreDetails。 在viewDidLoad中,我正在写作 [findTarget_Btn addTarget:self action:@selector(moreDetails) forControlEvents:UIControlEventTouchUpInside]; 但是由于某种原因,当我点击按钮时,没有调用moreDetails?我做错什么了吗 如果我在按钮上调用2个方法也可以;1通过IB和与上述类似的其他通
[findTarget_Btn addTarget:self action:@selector(moreDetails) forControlEvents:UIControlEventTouchUpInside];
但是由于某种原因,当我点击按钮时,没有调用moreDetails?我做错什么了吗
如果我在按钮上调用2个方法也可以;1通过IB和与上述类似的其他通过代码?检查您的更多详细信息是如何定义的。最有可能的情况是,它使用id sender参数:在这种情况下,您应该使用@selectormoreDetails:colon签名反映参数在
关于第二个问题:是的,您完全可以从代码中调用其他操作。IBAction只是void的同义词,它与任何其他方法都没有区别
编辑
我可能误解了你的第二个问题。如果您想在IB中分配一个操作,在代码中分配另一个操作,那么这可能不起作用。但您始终可以创建一个专用处理程序,并从中顺序调用两个方法
- (IBAction) findTargetClick:(id) sender {
[self handler1:sender];
[self moreDetails:sender];
}
检查您的moreDetails是如何定义的。最有可能的情况是,它使用id sender参数:在这种情况下,您应该使用@selectormoreDetails:colon签名反映参数在
关于第二个问题:是的,您完全可以从代码中调用其他操作。IBAction只是void的同义词,它与任何其他方法都没有区别
编辑
我可能误解了你的第二个问题。如果您想在IB中分配一个操作,在代码中分配另一个操作,那么这可能不起作用。但您始终可以创建一个专用处理程序,并从中顺序调用两个方法
- (IBAction) findTargetClick:(id) sender {
[self handler1:sender];
[self moreDetails:sender];
}
您是否已确定为findTarget\u Btn分配了一些内容?如果您忘记初始化它,或者您正在使用nib,并且忘记将其连接为插座,那么它将为零,因此您发送给它的任何消息都将被忽略。您是否已确保为findTarget\n分配了某些内容?如果您忘记初始化它,或者您正在使用nib并忘记将其连接为插座,那么它将为零,因此您发送给它的任何消息都将被忽略。可能值得检查findTarget\u Btn是否确实指向某个东西;只是为了排除Interface Builder中的错误点击。如果问题是错误的方法签名,他将获得无法识别的选择器异常。没有参数。下面是我的方法-iAction moreDetails{…}@hmthur我会尝试使用1个处理程序,那么,可能值得检查findTarget_Btn是否确实指向某个东西;只是为了排除Interface Builder中的错误点击。如果问题是错误的方法签名,他将获得无法识别的选择器异常。没有参数。下面是我的方法-iAction moreDetails{…}@hmthur我会尝试使用1个处理程序,然后。请添加NSLog@Button:%@,findTarget_Btn;在这条队伍前面。我感觉你的按钮是零。请加上NSLog@Button:%@,findTarget_Btn;在这条队伍前面。我感觉你的按钮是零。它不是零。检查IB连接也不是零。检查IB连接也不是零