3

から に移動している間first view controller、インデックスパスsecond view controllerを配列に保存し、 にテーブルをロードするときに戻りますfirst view controller。現在のインデックスパスが保存されたインデックスパス配列にある場合、カスタム アクセサリ ボタンを作成する必要があります。

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

インデックスパスがテーブルビューで再利用されることを意図しているというドキュメントのどの部分も覚えていません。オブジェクトを設計された関数と比較することをお勧めします。

比較:

受信インデックス パスと別のインデックス パスの深さ優先の走査順序を示します。

-(NSComparisonResult)compare:(NSIndexPath *)indexPath

パラメーター

indexPath 比較するインデックス パス。この値は nil であってはなりません。値が nil の場合、動作は未定義です。

戻り値

受信インデックス パスと indexPath の深さ優先走査順序。

  • NSOrderedAscending: 受信インデックス パスが indexPath の前に来ます。
  • NSOrderedDescending: 受信インデックス パスは indexPath の後に来ます。
  • NSOrderedSame: 受信インデックス パスと indexPath は同じインデックス パスです。

可用性

iOS 2.0 以降で利用できます。

で宣言

NSIndexPath.h

于 2013-01-17T12:46:29.837 に答える
0

この行を削除して、毎回セルを作成してみてください。

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