从特定行获取 Picker 数据

Posted

技术标签:

【中文标题】从特定行获取 Picker 数据【英文标题】:Getting Picker data from a particular row 【发布时间】:2015-04-20 12:26:13 【问题描述】:

当单击该单元格中的按钮时,我需要从每个单元格中获取选取器值。就像我单击黑天鹅单元格中的贪睡按钮一样,我应该在该单元格中获取选取器值。我正在从

获取行详细信息
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
 
    int section = indexPath.section;

int row = indexPath.row;
NSLog(@"section: %d / row: %d", section, row); 

感谢任何帮助。所有单元格都是自定义单元格。

【问题讨论】:

【参考方案1】:

您可以在didSelectRowAtIndexPath 中的每个单元格中从pickerssigning a tag to picker 中获取值

pickerView.tag=indexPath.row;

然后在选择器委托中,您可以执行以下操作

 if (pickerView.tag == 1)
//do stuff
else (pickerView.tag == 2)
//do other stuff

如果你也想在这里使用,你也可以使用 Switch。

【讨论】:

我的tableview是一个分组表如何在标记时处理部分?? 您可以相应地分配标签,例如对于第一节,您可以有 tag1000+index 就像对于第一节索引一,您可以设置 tag=1001 和 1002 等等 ....对于第 2 节,您可以将标签基值设置为 2000,那么这里的第二部分索引 1 将有标签 2001,以此类推【参考方案2】:

你可以setTag 到你的UIButtons,用indexpath.row,如果它有多部分那么你可以设置你的逻辑,设置你的UIPickerView 使用静态标签,它不应该等于按钮标记,例如 Pickerview 的 999999 标记。

你可以通过addTarget:action:forControlEvent方法设置target来调用UIButton的实例方法,比如,

//You can set it in `cellForRowAtIndexPath` method
[yourSnoozbuton addTarget:self action:@selector(selectPickerTime:) forControlEvents:UIControlEventTouchDown];

在 Instance 方法中,您可以获取选择器值,例如,

-(IBAction)selectPickerTime:(UIButton *)sender 
    NSIndexPath *nowIndex = [NSIndexPath indexPathForRow:sender.tag inSection:0];
    UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:nowIndex];
    UIPickerView *pickerview = [cell viewWithTag:999999];
    NSString *str = [timeArray objectAtIndex:[pickerview selectedRowInComponent:0]];
    //if multi sectioned, get button as per logic.

【讨论】:

以上是关于从特定行获取 Picker 数据的主要内容,如果未能解决你的问题,请参考以下文章

从最近插入的数据库条目的特定行获取信息

如何使用 Swift 从 CoreData sqlite 表中获取特定的行数据

单击仅使用 JavaScript 从 JSON 获取的表数据中的按钮时引用特定行

如何从 React Native Picker 获取值和标签名称?

如何从 VB.net 组合框中的数据库中获取特定列的所有行?

如何从 MS ACCESS 数据库中的特定行和列中获取值?