2015-08-18 72 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

它應該工作。 –