iOS在UITableView中传递行标签

Posted

技术标签:

【中文标题】iOS在UITableView中传递行标签【英文标题】:iOS Pass on label of row in UITableView 【发布时间】:2013-02-14 13:29:47 【问题描述】:

当您点击该行辅助按钮时,我正在尝试传递表格行的标签,因为它与 plist 中数组的键匹配,因此下一页知道要从哪个数组加载设置。

这是我目前在performSegueWithIdentifier中使用的代码:

NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
SettingsViewController *destViewController = segue.destinationViewController;
destViewController.nameViewer = [viewerKeys objectAtIndex:indexPath.row];

不幸的是,每次它选择第一行...我知道是因为使用NSLog 它总是给出相同的输出(第一行的名称)。有什么想法吗?

干杯,

克里斯

【问题讨论】:

【参考方案1】:

问题在于,当您点击单元格的附属按钮时,单元格本身不会被选中(这是正常行为,因为附属按钮会触发不同的委托方法),因此您总是得到0

您可以做的是在tableView:accessoryButtonTappedForRowWithIndexPath: 委托方法中设置一个具有选定索引的ivar,并将该ivar 传递给您的目标控制器。我希望这是有道理的......

【讨论】:

@ChrisByatt 不客气 :) 如果您愿意,请随时接受答案。 我做到了——这让我先等了一会儿 :)【参考方案2】:

使用-prepareForSegue:sender: 代替-prepareForSegue: 并使用以下内容:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 

    NSIndexPath *indexPath = [[[segue sourceViewController] tableView] indexPathForCell:sender];

    SettingsViewController *destViewController = segue.destinationViewController;

    destViewController.nameViewer = [viewerKeys objectAtIndex:indexPath.row];

【讨论】:

以上是关于iOS在UITableView中传递行标签的主要内容,如果未能解决你的问题,请参考以下文章

UITableView 拉伸问题

单击不会在uitableview ios 7中选择行

在 iOS 7 上的 UITableView 上指示加载活动的正确方法是啥?

UITableView reloadData 在没有行的情况下无法工作

iPhone + UITableView + 行高

在ios的uitableview中自定义单元格编辑样式