如何“重置”下一个 indexPath.row 成为当前 indexPath.row?

Posted

技术标签:

【中文标题】如何“重置”下一个 indexPath.row 成为当前 indexPath.row?【英文标题】:How to "reset" next indexPath.row to become current indexPath.row? 【发布时间】:2015-02-01 07:17:55 【问题描述】:
 -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 

self.selectedTrack = self.SPTrackList[indexPath.row];
self.selectedTrackRow = indexPath.row;

self.nextTrack = self.SPTrackList[indexPath.row +1];

[self playTrack:self.selectedTrack];


嗨——我怎样才能“重置” self.nextTrack 成为 self.selectedTrack?我试过 self.nextTrack = self.selectedTrack,但这只会工作一次。我猜我需要遍历——如果这是正确的话——并将 self.selectedTrack 和 self.nextTrack 的 indexPath 向前移动?

- (IBAction)nextPressd:(id)sender 
[self playTrack:self.nextTrack];

//self.nextTrack now be new self.selectedTrack via indexPath.row??

  

谢谢!

【问题讨论】:

您在寻找self.nextTrack = self.selectedTrack; 吗? 抱歉,不够清楚。我试过了。不是我要找的。如果我这样做了,IBAction nextPressed 将播放曲目 B,但随后会恢复到曲目 A。 你的问题不清楚,你能解释一下你的预期功能是什么,现在发生了什么? 抱歉,我只是想播放阵列中的下一首曲目。现在,当点击 tableview 上的单元格时,它将初始播放 self.selectedTrack。按下下一个时,它会播放下一首曲目....但仅此而已。它不会去其他任何地方。 :/ 对不起。我是新手,仍在学习如何表达我的问题 所以你需要在播放完曲目后播放下一首曲目对吗?或者当用户再次点击下一个时您需要播放下一首曲目? 【参考方案1】:

如果您需要播放阵列中的下一首曲目,则需要跟踪当前播放曲目和该索引。你可以这样做:

- (IBAction)nextPressd:(id)sender

   self.selectedTrackRow += 1;
   self.nextTrack = self.SPTrackList[self.selectedTrackRow];
   [self playTrack:self.nextTrack];

【讨论】:

天啊!太感谢了!!我在这上面花了 4 个小时。 :(

以上是关于如何“重置”下一个 indexPath.row 成为当前 indexPath.row?的主要内容,如果未能解决你的问题,请参考以下文章

当我按下按钮推送到另一个 ViewController 时,如何知道我的按钮在哪个 indexPath.row 中?

如何在特定 indexpath.row 上显示自定义 tableviewcell

Swift 4.2 - 如何从 tableView 中的“didSelectRowAtIndexPath”方法调用“indexPath.row”到另一个类?

如何获取当前正在显示的tableView的indexPath.row?

我想在 tableview 或任何其他替代方案之后的下一个视图上获取 indexpath.row

如何在 UITableView 中获取选定的 indexPath.section 和 indexPath.row 值?