Я использовал TableViewCell в другом TableView. Итак, как мне получить значение выбранной кнопки TableViewCell в TableView - PullRequest
0 голосов
/ 10 декабря 2011

Я создал файлы .h, .m и .xib с именем SweepStakeTableViewCell соответственно, и в моем файле xib я заменил View to Cell, который выглядит следующим образом.

enter image description here

Теперь я написал весь код для выбора кнопок.Я успешно интегрировал эту ячейку в таблицу с различными файлами .h, .m и .Xib с именем SweepViewController.и на выходе этого XIB будут отображаться участники и кнопки выбора, подобные этой.enter image description here

Теперь, возвращаясь к основному вопросу, я хочу передать значение выбранной кнопки SweepViewController, и логика выбора кнопки находится в SweepStakeTableViewCell.

Пожалуйста, помогите мнес этим.Если Вы не можете получить мой вопрос ясно, пожалуйста, я спрашиваю.

Ответы [ 2 ]

0 голосов
/ 11 декабря 2011

Вы можете создать делегат для SweepStakeTableViewCell и назначить ему SweepViewController.

@protocol SweepStakeTableViewCellDelegate <NSObject>
- (void)sweepTableViewCell:(SweepStakeTableViewCell *)cell buttonSelected:(UIButton *)button;
@end

Назначить контроллер представления (в данном случае self) методу делегата SweepStakeTableViewCell при создании ячейки в табличном представленииМетод делегата.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[SweepStakeTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    }

    // Configure the cell...
    .
    .
    .
    cell.delegate = self;
    return cell;
}

Для SweepStakeTableViewCell

@interface SweepStakeTableViewCell : UITableViewCell
.
.
@property (nonatomic, assign) id<SweepStakeTableViewCellDelegate> delegate;
.
@end

@implementation SweepStakeTableViewCell
.
- (void)buttonTapped:(id)sender
{
    if ([delegate respondsToSelector:@selector(sweepTableViewCell:buttonSelected:)])
    {
        [delegate sweepTableViewCell:self buttonSelected:sender];
    }
}
.
@end

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

0 голосов
/ 10 декабря 2011

Если я понимаю вопрос, есть два подхода:

1) Сохраните ссылку на SweepViewController в SweepStakeTableViewCells. Для этого добавьте свойство (то есть переменную экземпляра и общедоступный установщик) к подклассу и задайте его при создании ячеек в методе tableView:cellForRowAtIndexPath:.

2) Используйте систему уведомлений, предоставленную Apple. Ваш viewController должен будет зарегистрировать наблюдателя. Тогда ваши ячейки могут публиковать уведомления, и они будут забраны viewController. Проверьте документы для NSNotificationCenter.

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