0

iPad アプリにUITableViewカスタム セルがあります。その のデータ ソースである配列を並べ替え、UITableViewの行をクリックすると、UITableViewその行の詳細データが間違っています (選択した行のデータを に空にしますUITextFields)。配列をソートしなければ、詳細は正しいです! データソース配列をソートするコードは次のとおりです。

-(void) reloadClientList: (BOOL *)dontDeleteKey  {

    custDataArray = [NSMutableArray new];  //Init Array to hold TableView Data

    if(boSortClientList.selectedSegmentIndex == 0)  {  //  sort alphabetically
        [custDataArray addObjectsFromArray: [ClientInfo MR_findAllSortedBy:@"aClientLastName" ascending:YES]];
    }
    else if(boSortClientList.selectedSegmentIndex == 1)  {  //  sort by phone number
        [custDataArray addObjectsFromArray: [ClientInfo MR_findAllSortedBy:@"aClientPrimaryPhone" ascending:YES]];
    }
    else  {  //  no sort
        [custDataArray addObjectsFromArray:[ClientInfo MR_findAll]];
    }

    [self.clientList reloadData];

    if(dontDeleteKey == false)
        selectedClientKey = nil;  // clear selectedClientKey
}

なぜこれが起こっているのですか?修正するにはどうすればよいですか?

4

3 に答える 3

1

NSMutableArray を保持する ivar を作成します。配列を並べ替えてreloadClientListいますが、で同じ配列を使用していませんdidSelectRowAtIndexPath

于 2013-04-15T18:20:53.087 に答える
1

行を選択するたびに、このコードdidSelectRowAtIndexPathは配列をもう一度再作成します。

custDataArray = [NSMutableArray new];
[custDataArray addObjectsFromArray:[ClientInfo MR_findAll]];

custDataArray が nil かどうかを確認する必要があります。nil でない場合、これらの行は必要ありません。

于 2013-04-15T18:20:30.680 に答える