3

first view controller到移动时,second view controller我将 indexpaths 保存在数组中,并在加载表时在first view controllerreturn 中保存,如果当前 indexpath 在保存的 indexpaths 数组中,我必须创建一个自定义附件按钮。

UITableview但是,当与所需的单元格一起滚动时,另一个单元格也会获得自定义按钮。当我NSindexPaths在滚动时打印时,我得到的是随机值而不是正常值。

对于上面我使用以下代码:

- (UITableViewCell *)tableView: (UITableView *)tableView cellForRowAtIndexPath: (NSIndexPath *)indexPath
{
   // NSLog(@"newdata value is =%d",newData);
    AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
    UITableViewCell *cell = [self.positionsTable dequeueReusableCellWithIdentifier:@"playersInPosition"];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"playersInPosition"]autorelease];
    }
    UILabel *lblName = (UILabel *)[cell viewWithTag:100];
    [lblName setText:[inputData objectAtIndex:[indexPath row]]];
    UILabel *pname = (UILabel *)[cell viewWithTag:102];
    [pname setText:[appDelegate.playersNFL objectAtIndex:[indexPath row]]];

      for (NSIndexPath *object in appDelegate.indexPathList) {
    if ([object isEqual:indexPath]) {
        NSLog(@"saved index path values are =%@",appDelegate.savedIndexPath);
        UIButton *button = [self ChangeAccessoryButtonStyle:appDelegate.indexPathList[0]];
        cell.accessoryView = button;
    }
    }
        return cell;
}
4

2 回答 2

0

尝试删除此行并每次创建单元格。

UITableViewCell *cell = [self.positionsTable dequeueReusableCellWithIdentifier:@"playersInPosition"];
于 2014-07-02T08:02:58.373 回答
0

我不记得文档中有任何部分说索引路径旨在由表视图重用,然后将对象与设计的函数进行比较可能是个好主意:

相比:

指示接收索引路径和另一个索引路径的深度优先遍历顺序。

-(NSComparisonResult)比较:(NSIndexPath *)indexPath

参数

indexPath 要比较的索引路径。该值不能为零。如果值为 nil,则行为未定义。

返回值

接收索引路径和索引路径的深度优先遍历排序。

  • NSOrderedAscending:接收索引路径在 indexPath 之前。
  • NSOrderedDescending:接收索引路径在 indexPath 之后。
  • NSOrderedSame:接收索引路径和indexPath是同一个索引路径。

可用性

在 iOS 2.0 及更高版本中可用。

宣布于

NSIndexPath.h

于 2013-01-17T12:46:29.837 回答