gpt4 book ai didi

ios - 我可以让 UIButton 的操作方法接受第二个参数吗?

转载 作者:行者123 更新时间:2023-12-01 19:00:35 25 4
gpt4 key购买 nike

我想在表格的每个单元格中放置一个按钮。我希望目标是我用来处理所有 API 调用的类。 我希望按钮的方法在friendController 类中,而不是在UITableView 的 View Controller 中。

[cell.deleteButton addTarget:friendController 
action:@selector(deleteFriend: forID:cell.idNumber)
forControlEvents:UIControlEventTouchUpInside];

在哪里 friendController是具有 API 调用的类,而 cell.idNumber 是每个单元格的实例变量,其中包含与该单元格关联的用户的 ID 号。

我知道(好吧,我想)我可以将单元格本身设置为目标,然后有一个看起来像这样的方法:
-(IBAction)deleteFriend:(id)sender {
[friendController deleteFriend:self.idNumber];
}

那是对的吗?这似乎不是一种优雅的方式。有没有办法按照我想要的方式去做,或者有更好的方法吗?

编辑:我大胆地提出了我问题的最后一个关键部分。我希望按钮的操作是另一个类(friendController)中的方法。 friendController 是我创建的一个类,用于容纳所有 API 调用和业务逻辑。如果我将目标设置为friendController,那么操作必须是该类中的方法吗?

最佳答案

你可以通过两种方式做到这一点。

子类 UIButton

第一个是子类UIButton并为 idNumber 创建一个属性.所以你首先要像这样设置属性:

cell.deleteButton.idNumber = /* set id here */
[cell.deleteButton addTarget:friendController
action:@selector(deleteFriend:)
forControlEvents:UIControlEventTouchUpInside];

然后在您的 deleteFriend: 中访问它方法:
- (IBAction)deleteFriend:(id)sender {
YourButtonClass *button = (YourButtonClass *)sender;
[friendController deleteFriend:button.idNumber];
}

检索 idNumber直接来自单元格

描述于 this post您可以获取按钮单元格的索引路径,然后访问 idNumber从那里。

关于ios - 我可以让 UIButton 的操作方法接受第二个参数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23164138/

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