2016-10-03 96 views
0

我在UITableView中顯示人名和NSMutableArray以及單元格中的單選按鈕,我想知道的是如何使它在用戶點擊導航欄中的按鈕可以將該按鈕命名爲clearAllButton,所有表格的內容都被選中(我的意思是所有的單選按鈕都被選中),如何改變RadioButton使其在clearAllButton點擊時取消選擇全部(我想取消選擇所有radioButtons當用戶點擊clearAllButton)。我是一個新的開發人員任何幫助將不勝感激! 我已經嘗試clearAllButtonAction下面的代碼,但它不工作。如何在iOS中按鈕單擊時取消選擇所有單選按鈕uitableview單元格

- (IBAction)clearAllBtnActn:(id)sender { 
 
    
 
    NSIndexPath *indexPath = [self.tableView indexPathForCell:cell]; 
 

 
    if([btnRadio isSelected]); 
 
    { 
 
     [btnRadio setSelected:NO]; 
 
    } 
 
    
 
}

+2

表明我們的代碼... –

+0

什麼你上面的代碼happend? – Abha

+0

請再次檢查我的問題..#Karthik – hani

回答

0

首先需要一個基礎數據源(例如MyItemNSArray對象),從中可以驅動工作臺視圖細胞。

MyItem對象可能是這樣的:

@interface MyItem() 

@property (nonatomic, strong) NSString *title; 
@property (nonatomic, readwrite) BOOL selected; 

@end 

在您的視圖控制器創建數據源myItems

@interface MyViewController() 

@property (nonatomic, weak) IBOutlet UITableView *tableView; 
@property (nonatomic, strong) NSArray *myItems; 

@end 

在您的視圖控制器,創建你的細胞:

@implementation MyViewController 

... 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

    MyButtonTableViewCell *cell = [tableView [email protected]"ButtonCell" forIndexPath:indexPath]; 
    MyItem *itemForCell = myItems[indexPath.row]; 

    cell.titleLabel.text = itemForCell.title; 
    cell.radioButton.selected = itemForCell.selected; 

    return cell; 
} 

... 

@end 

然後你的「清晰」方法會看起來li關鍵字:

- (IBAction)clearAllBtnActn:(id)sender { 

    // Deselect all items 
    for (MyItem *item in self.myItems) 
     item.selected = NO; 

    [self.tableView reloadData]; 
} 
+0

嗨謝謝你的迴應..你的意思是MyItem? – hani

+0

表格中的每個單元格都顯示有關'某事'(一個項目)的數據。實際的物品需要放在與桌子視圖完全分開的模型中。您應該創建一個名爲MyItem的類(或任何您想要的)來表示一個項目。然後創建一個數組來保存所有項目的實際數據。閱讀MVC(https://en.wikipedia。org/wiki/Model-view-controller)和UITableView(https://developer.apple.com/reference/uikit/uitableview?language=objc) – norders

+0

,但我沒有采取任何課堂..那麼將是什麼答案? – hani

0

爲此您必須攜帶一個數組。下面

NSMutableArray *arraySelectObject; 

你在哪裏得到的名稱數組只是調用lines.Suppose你的名字陣列將返回5對象,然後,

arraySelectObject=[[NSMutableArray alloc]init]; 
for (int i=0, i<=name.count,i++) 
{ 
    [arraySelectObject addObject:@"0"]; 
} 

如果您選擇或不選擇的單選按鈕,檢查按鈕動作

-(IBAction)selectButton:(id)sender 
{ 
if([arraySelectObject objectAtIndex:sender.tag]==true) 
{ 
    [arraySelectObject replaceObjectAtIndex:sender.tag withObject:@"0"]; 
} 
else 
{ 
    [arraySelectObject replaceObjectAtIndex:sender.tag withObject:@"1"]; 
} 

[tableView reloadData]; 
} 

並在您的全部清除按鈕方法

- (IBAction)clearAllBtnActn:(id)sender 
{ 
    for (int i=0, i<=name.count,i++) 
    { 
     [arraySelectObject addObject:@"0"]; 
    } 

    [tableView reloadData]; 
} 

而在的tableView cellForrow方法顯示選擇和取消選擇單選按鈕圖像或任何代碼

if([arraySelectObject objectAtIndex:sender.tag]==true) 
{ 
    //Set the image or your code of the select radio button ///// 

} 
else 
{ 
////////// Set the image or code of the Deselect radio button /////// 
} 
1
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath; 
{ 
    CustomCell *cell = [tableview cellForRowAtIndexPath:indexPath]; 
    BOOL b = cell.check; 

    if(b) 
    { 
     cell.check = NO; 
     [cell.Selectitems setBackgroundImage:[UIImage imageNamed:@"product-uncheck.png"] forState:UIControlStateNormal]; 
    } 
    else{ 
     cell.check = YES; 

     [cell.Selectitems setBackgroundImage:[UIImage imageNamed:@"product-check.png"] forState:UIControlStateNormal]; 
    } 
} 
相關問題