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中传递行标签的主要内容,如果未能解决你的问题,请参考以下文章
在 iOS 7 上的 UITableView 上指示加载活动的正确方法是啥?