2010-09-01 2 views
2

создать паклю или больше пользовательских ячейкиКак получить indexPath.row/path Когда я нажимаю переключатель в строке?

каждая клетка имеет переключатель внутри

Как я могу знать, какой переключатель в строке я нажимаю

Ex.I нажмите переключатель в строке 3, чем это вернет indexPath.row = 3

, а также статус переключателя включен или выключен?

, в котором я должен ввести?

Я знаю, что есть способ может получить indexpath возвращение:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

Но я не хочу трогать строку, просто переключатель ...

О, я сделать некоторые исследования, но это только будет немного отличаться

How can keep track of the index path of a button in a tableview cell?

какие-либо идеи?

Я желаю я могу отправить свой снимок экрана, но не я новый пользователь система не позволяет мне сделать это

ответ

3

При создании переключателя, настроить цель и действие для него:

[mySwitch addTarget:self action:@selector(switchToggled:) forControlEvents:UIControlEventValueChanged]; 

Здесь целевой self является вашим UITableViewController, в котором вам необходимо реализовать метод (void) switchToggled:(id)sender для обработки события управления. Коммутатор автоматически отправит себя в метод switchToggled как sender, когда он переключается. Как это (модифицированный из UIButton примера вы связаны):

- (void)switchToggled:(id)sender { 
    UISwitch *theSwitch = (UISwitch *)sender; 
    UITableViewCell *cell = (UITableViewCell *)theSwitch.superview; 
    UITableView *tableView = (UITableView *)cell.superview; 
    NSIndexPath *indexPath = [tableView indexPathForCell:cell]; 

    if(theSwitch.on) { 
     // switch turned on 
    } 
    else { 
     // switch turned off 
    } 
} 
+0

Хммм .. Это выглядит как работа! Я пробую это сейчас! Спасибо, как я могу быть хорошим программистом, как вы? –

+0

Простите, я создаю LightCell0, а TableViewController, I должен поставить этот код в который? –

+0

См. Http://stackoverflow.com/questions/18919616/uitableviewcell-indexpath-crash-in-ios7 для iOS7. Существуют дополнительные обертки для табличных представлений и ячеек. Мне пришлось использовать: 'UITableViewCell * cell = (UITableViewCell *) switchControl.superview.superview; UITableView * tableView = (UITableView *) cell.superview.superview; ' – joshs

1

При нажатии кнопки создается

button.tag = [indexPath row] 

При выборе кнопки потяните строку из тега

int myRow = [(UIButton *)sender tag]; 
+0

Могу ли я поставить это в [Lightswitch addTarget: само действие: @selector (switchlightswitch) forControlEvents: UIControlEventValueChanged] ??? –

Смежные вопросы