【问题标题】:iOS Pass on label of row in UITableViewiOS在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 它总是给出相同的输出(第一行的名称)。有什么想法吗?

干杯,

克里斯

【问题讨论】:

    标签: ios arrays uitableview segue


    【解决方案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];
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-24
      • 1970-01-01
      • 2014-05-26
      • 1970-01-01
      • 2015-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多