繁体   English   中英

从代码中调用IBAction方法

[英]Call IBAction method from code

我有一个按钮findTarget_Btn,我想在其上调用一个方法moreDetails。 在viewDidLoad中,我正在写作

[findTarget_Btn addTarget:self action:@selector(moreDetails) forControlEvents:UIControlEventTouchUpInside];

但由于某种原因,单击按钮时没有调用moreDetails? 难道我做错了什么?

如果我在按钮上调用2个方法也没关系; 1通过IB和其他类似上面的通过代码?

检查您的moreDetails的定义方式。 最有可能的是,它需要id sender参数:在这种情况下你应该使用@selector(moreDetails:) (冒号签名反映了参数的存在)

关于你的第二个问题:是的,你绝对可以从你的代码中调用其他动作。 IBAction只是void的同义词,它与任何其他方法没有什么不同。

编辑
我可能误解了你的第二个问题。 如果要在IB中分配一个操作,在代码中分配另一个操作,则可能无效。 但是你总是可以创建一个专用的处理程序并从中顺序调用两个方法。

- (IBAction) findTargetClick:(id) sender {
  [self handler1:sender];
  [self moreDetails:sender];
}

你有没有确定你已经分配了一些东西来findTarget_Btn 如果您忘记初始化它或者您正在使用笔尖并忘记将其作为插座连接,那么它将为零,因此您发送给它的任何消息都将被忽略。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM