gpt4 book ai didi

ios - 在单元格按钮点击时获取表格 View 行

转载 作者:行者123 更新时间:2023-11-28 22:02:54 24 4
gpt4 key购买 nike

我有一个带有单元格(非自定义)的表格 View ,每个单元格都有一个按钮(除其他外)。

根据单元格的不同,创建的按钮也不同。我有 3 种不同类型的单元格/按钮,评分/查看/编辑(我不确定这是否相关)

此按钮仅用于此:

[button addTarget:self action:@selector(rateEvent:) forControlEvents:UIControlEventTouchUpInside];

每个按钮(rateEvent、viewEvent、editEvent)的选择器都不同。

这是一个例子,它们 3 个都非常相似并开始 segue 序列:

- (IBAction)viewEvent:(UIButton*)sender
{
[self performSegueWithIdentifier:@"fromHomeToDetails" sender:self];
}

我的 didSelectedRowAtIndexPath 将 session 的详细信息保存在 selectedMeeting 对象中。

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{

selectedMeeting = [_nextMeetingsArray objectAtIndex:indexPath.row];
}

segue 将 selectedMeeting 发送到下一个 Controller 。

我的问题: 发送的 session 取决于所选的单元格。这意味着用户必须选择一个单元格,然后点击按钮才能在下一页上获取正确的详细信息。我该怎么做才能获得单元格内点击按钮的正确索引路径?

我尝试向 viewEvent 方法添加参数,使其看起来像 -(void)viewEvent:(int)index:(UIButton*)sender; 但它在@selector(viewEvent:)

我可以想象但无法创建的解决方案是:- 设法获取点击按钮的单元格的索引路径,并以某种方式将其发送到我的 viewEvent 方法。- 创建一个 customCell 和/或使用一个附件,所以我在这里和那里阅读过。- 当我点击按钮时强制选择行,但这也需要知道所述行的索引。

对于(应该?)相当简单的事情来说,两者似乎都“太复杂”了。我很确定任何有经验的程序员都会有一个我还没有学到的明显简单的答案,我宁愿要求它而不是实现比它应该更重的东西。

此外,如果您对我的做法有任何评论/批评,我会洗耳恭听:)

谢谢你们的时间,一如既往,我非常感激。

编辑:

cellForRow 方法:

注意:我删除了与标签有关的所有内容。因为我有不同的按钮,所以有多个 if{} 语句,但我认为它们没有影响。此外,该单元格基于标签为 228 的 Storyboard单元格;创建一个新标签后设置,所以它不应该影响。另外,我在 tableview 中有 50 个项目的上限(从 webservice 设置),所以索引路径不可能达到 >50。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

UITableViewCell *nextCell = [self.tbvNextMeetings dequeueReusableCellWithIdentifier:@"tbNextCell" forIndexPath:indexPath];
UIButton *bt= (UIButton*) [nextCell viewWithTag:228];
[bt setTitle:@"Edit" forState:UIControlStateNormal];
[bt addTarget:self action:@selector(editEvent:) forControlEvents:UIControlEventTouchUpInside];
[bt setTag:indexPath.row];

return nextCell;

最佳答案

在 cellForRowAtIndexPath() 方法中将标记作为 indexpath.row 添加到按钮。然后在选择器方法中获取发件人标签。并传入

NSIndexPath *path = [NSIndexPath indexPathForRow:sender.tag inSection:yoursection];
UITableViewCell *cell = [tableView cellForRowAtIndexPath:path];

编辑:先设置标签为228的单元格,然后将其切换为indexpath的值使其创建失败。

关于ios - 在单元格按钮点击时获取表格 View 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24677372/

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