2016-10-03 4 views
0

Я показываю имена людей в UITableView с NSMutableArray вместе с переключателем в ячейке. Что я хотел бы знать, так это сделать так, чтобы когда пользователь нажатие кнопки на панели навигации позволяет называть ее этой кнопкой как clearAllButton, все содержимое таблицы выбрано (я имею в виду, что все переключатели выбраны), как изменить RadioButton, чтобы отменить выбор всех при нажатии кнопки ClearAllButton (я хочу отменить выбор все radioButtons, когда пользователь нажимает на clearAllButton). Я новый разработчик Любая помощь будет принята с благодарностью! Я пробовал код ниже в clearAllButtonAction, но он не работает.Как отменить выбор всех ячеек uitableview радиокнопки при нажатии кнопки в iOS

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

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

+2

показать ур код ... –

+0

Что случилось с выше код? – Abha

+0

пожалуйста еще раз проверьте мой вопрос .. # Karthik – hani

ответ

0

Во-первых, необходим источник данных (например, запросы NSArray из MyItem объектов), из которого можно управлять вид таблицы ячеек.

Ваш 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 ke this:

- (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]; 
} 

И В вашем Clear ALL Метод Кнопка

- (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]; 
    } 
} 
Смежные вопросы