Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 从代码中调用iAction方法_Iphone_Objective C_Cocoa Touch - Fatal编程技术网

Iphone 从代码中调用iAction方法

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\u Btn,我想在它上面调用一个方法moreDetails。 在viewDidLoad中,我正在写作

[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连接也不是零