2015-08-18 25 views
2

我已经创建按钮点击更改Tableview值完全相反。如何更改逆序NSMutableArray存储值?

例如:

普通的tableview

---------------------------------------------- 
Name   A    B   C 
---------------------------------------------- 
anis   20   20   1 
---------------------------------------------- 
dols   30   30   2 
---------------------------------------------- 

Button first click改变像下面

---------------------------------------------- 
Name   A    B   C 
---------------------------------------------- 
dols   30   30   2 
---------------------------------------------- 
anis   20   20   1 
---------------------------------------------- 

Button second click改变的tableview柱再次正常位置

值这里上面的表格显示多个custom cell标签有多个NSMutableArray,我使用的是某种原因。

我已经成功地完成了名称倒序下面的代码

names = [[[alertArray allKeys] sortedArrayUsingDescriptors:[NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:keys ascending:NO]]] mutableCopy]; 

改变由但现在我需要"How to change reverse cell other values A B C like above diagram 2(它不排序工作)。

这里下面的代码我已经存储单独的值到单独的NSMutableArrays

NSArray * sortedKeys = .....; 

    for (NSString *keys in sortedKeys) { 
     [name_array addObject:keys]; 
     [A_array addObject:[alertArray objectForKey:keys][@"A"]]; 
     [B_array addObject:[alertArray objectForKey:keys][@"B"]]; 
     [C_array addObject:[alertArray objectForKey:keys][@"C"]]; 
    } 
+0

显示的cellForRowAtIndexPath代码。 –

+0

不要在cellForRowAtIndexPath中添加子视图 –

+0

你的问题还不清楚。你是说你有单独数组中每列的数据,希望对其中的一列进行排序,然后希望改变其他数组以匹配?显示你的代码,现在人们试图帮助只能猜测。 – CRD

回答

3

假设你的数据从阵列myTableViewArray填满你的tableview。

在该方法中,你要切换它

myTableViewArray = [[[myTableViewArray reverseObjectEnumerator] allObjects]mutableCopy]; 
[myCustomTableview reloadData]; 
3
reversedArray = [[theMutableArray reverseObjectEnumerator] allObjects]; 

OR

您还可以使用NSSortDescriptor

NSSortDescriptor* sortDes = [[NSSortDescriptor alloc] initWithKey:@"your key" ascending:YES]; 
[_array sortUsingDescriptors:[NSArray arrayWithObject:sortDes]]; 

OR

[tableAry sortUsingDescriptors: 
    [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES selector:@selector(caseInsensitiveCompare:)]]]; 

    NSLog(@"tableAry : %@",tableAry); 

OR

[tableAry sortUsingComparator:^NSComparisonResult(DataModel *obj1, DataModel *obj2) { 
     return [obj1.name caseInsensitiveCompare:obj2.name]; 
}]; 
+1

@AnswerMe改变datasource调用'reloadData:'tableView的方法。 – Anupdas

+1

@AnswerMe,排序后..尝试使用[tableView reloadData]; (其中tableView是您的实例变量的名称) – Mehul

+0

它应该工作。 –