gpt4 book ai didi

ios - 将参数传递给 addTarget :action:forControlEvents

转载 作者:IT老高 更新时间:2023-10-28 12:19:33 24 4
gpt4 key购买 nike

我正在像这样使用 addTarget:action:forControlEvents:

[newsButton addTarget:self
action:@selector(switchToNewsDetails)
forControlEvents:UIControlEventTouchUpInside];

我想将参数传递给我的选择器“switchToNewsDetails”。我成功做的唯一一件事是通过编写(id)发件人:

action:@selector(switchToNewsDetails:)

但我正在尝试传递整数值等变量。这样写是行不通的:

int i = 0;
[newsButton addTarget:self
action:@selector(switchToNewsDetails:i)
forControlEvents:UIControlEventTouchUpInside];

这样写也不行:

int i = 0;
[newsButton addTarget:self
action:@selector(switchToNewsDetails:i:)
forControlEvents:UIControlEventTouchUpInside];

任何帮助将不胜感激:)

最佳答案

action:@selector(switchToNewsDetails:)

您不要在此处将参数传递给 switchToNewsDetails: 方法。您只需创建一个选择器以使按钮能够在发生某些操作时调用它(在您的情况下进行修饰)。控件可以使用 3 种类型的选择器来响应 Action ,它们都具有预定义的参数含义:

  1. 无参数

    action:@selector(switchToNewsDetails)
  2. 有1个参数表示发送消息的控件

    action:@selector(switchToNewsDetails:)
  3. 用2个参数表示发送消息的控件和触发消息的事件:

    action:@selector(switchToNewsDetails:event:)

尚不清楚您究竟想做什么,但考虑到您想为每个按钮分配一个特定的详细信息索引,您可以执行以下操作:

  1. 为每个按钮设置一个等于所需索引的标签属性
  2. switchToNewsDetails: 方法中,您可以获得该索引并打开相应的详细信息:

    - (void)switchToNewsDetails:(UIButton*)sender{
    [self openDetails:sender.tag];
    // Or place opening logic right here
    }

关于ios - 将参数传递给 addTarget :action:forControlEvents,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3988485/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com