как заставить выполнить действие в кнопке ячейки таблицы - PullRequest
2 голосов
/ 25 августа 2011

В моем приложении я создал страницу UIViewController, в которой я взял таблицу. настроив эту таблицу, я создал кнопку добавления в каждой ячейке этой таблицы.

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


static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

if(cell == nil) {
    [[NSBundle mainBundle] loadNibNamed:@"CustomBuddy" owner:self options:nil];
    cell = self.customCell;
    self.customCell = nil;

}
cell.text = (NSString *)[names objectAtIndex:indexPath.row];



    return cell;
}

и добавьте действие к кнопке добавления

  -(IBAction)addButtonClicked
{

    NSLog(@"Add button clicked");

}

теперь в этой кнопке добавления я хочу получить имя, существующее в ячейке. как я могу это сделать, пожалуйста, помогите мне ....

Ответы [ 4 ]

2 голосов
/ 25 августа 2011

Вы можете назначить тег для кнопки «Добавить» во время создания tableView:cellForRowAtIndexPath. Затем вы можете просто считывать тег кнопки «Добавить», когда он срабатывает. Кстати, это должно быть -(IBAction) addButtonClicked:(id) sender

0 голосов
/ 25 августа 2011

Вы можете создать подкласс UITableViewCell и добавить к нему свойство UIButton, а затем также добавить свой код обработчика addButton в ячейку табличного представления и связать действие кнопки с кнопкой в ​​вашем кончике.Если вам нужен дескриптор для UITableViewController, оставьте выход для этого в своей пользовательской ячейке табличного представления.Просто имейте в виду, что ваша ячейка может быть очищена или повторно использована, если пользователь прокручивает во время выполнения кода обработки действий, поэтому будьте осторожны, ссылаясь на ячейку таблицы из кода обработки действий (например, если код обработки действий теряет контроль в любомpoint).

В качестве альтернативы вы можете поместить обработчик действий в свой контроллер представления, как вы это делали выше, затем получить видимые ячейки в обработчике действий и просмотреть их, выясняя, какой из них соответствует суперпредставлению для вашего представления кнопок..

Или, альтернативно, подход использования тега кнопки в качестве способа передачи индекса объекта для использования вашим обработчиком действия, как предлагается в других публикациях, также представляется разумным, если вам нужен только индекс для поискабазовый объект, которым вы хотите манипулировать в обработчике действий.

0 голосов
/ 25 августа 2011

Простым решением было бы изменить метод addButtonClicked на

-(IBAction)addButtonClicked:(NSInteger)row{

     NSLog(@"Add button clicked");

 }

и при вызове селектора вы можете передать значение indexPath.row.

Таким образом, вы можете получить его обратно из массива.

Надеюсь, это поможет

0 голосов
/ 25 августа 2011

проверка iPhone динамическая UIButton в UITableView

там вы увидите, как добавить и аналогично назначить тег

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...