Ios 选择行时,排序UITableView数据返回错误的数据
我有一个iPad应用程序中带有自定义单元格的Ios 选择行时,排序UITableView数据返回错误的数据,ios,objective-c,uitableview,Ios,Objective C,Uitableview,我有一个iPad应用程序中带有自定义单元格的UITableView。当我对作为该UITableView数据源的数组进行排序,并单击UITableView中的一行时,该行的详细数据是错误的(我将所选行数据清空到UITextFields)!如果我没有对数组排序,那么细节是正确的!以下是对数据源数组进行排序的代码: -(void) reloadClientList: (BOOL *)dontDeleteKey { custDataArray = [NSMutableArray new];
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
}
为什么会发生这种情况?我需要做些什么来修复它?最有可能是您将数据排序到一个数组中,并在
cellForRowAtIndexPath:
然后在
didSelectRowAtIndexPath
中,使用未排序的数组获取要转到的详细信息页面。您应该能够通过使用didSelectRowAtIndexPath
中的排序数组来解决问题,最有可能的方法是在数组中对数据进行排序,并在cellForRowAtIndexPath:
然后在
didSelectRowAtIndexPath
中,使用未排序的数组获取要转到的详细信息页面。您应该能够通过使用didSelectRowAtIndexPath
中的排序数组解决问题每次选择一行时,didSelectRowAtIndexPath
中的此代码将再次重新创建数组:
custDataArray = [NSMutableArray new];
[custDataArray addObjectsFromArray:[ClientInfo MR_findAll]];
您需要检查custDataArray是否为零。如果不是nil,则不需要这些行。每次选择行时,
didSelectRowAtIndexPath
中的此代码将再次重新创建数组:
custDataArray = [NSMutableArray new];
[custDataArray addObjectsFromArray:[ClientInfo MR_findAll]];
您需要检查custDataArray是否为零。如果不是nil,则不需要这些行。创建一个ivar来保存NSMutableArray。您正在对数组进行排序
reloadClientList
,但在didSelectRowAtIndexPath
中没有使用相同的数组创建一个ivar来保存NSMutableArray。您正在对数组进行排序reloadClientList
,但在didSelectRowAtIndexPath
和didSelectRowAtIndexPath
中没有使用相同的数组!这正是问题所在。。。多谢各位,;我真的很感激。太棒了!这正是问题所在。。。多谢各位,;我真的很感激。