Реализация базового обратного вызова в Objective C - PullRequest
0 голосов
/ 25 февраля 2011

Как реализовать необработанный обратный вызов в задаче C?

Я просто хочу уведомить ViewController, когда один из моих объектов UITableViewCell (пользовательская ячейка) обнаруживает касание.

Мне нужно уведомить мой RootViewController, чтобы он мог создать объект другого ViewController и поместить его в стек навигации.

Ответы [ 4 ]

1 голос
/ 25 февраля 2011

Вы можете использовать пользовательский метод init, как показано ниже, для secondVC и сохранить _sender в глобальной переменной или переменной класса.как

id sender;
- (id)initWithSender:(id)_sender
{
    self = [super init];
    if (self) {
        sender=_sender;
    }
    return self;
}

из RootVC, инициализировать secondvc следующим образом и определить метод с именем - (void) touchDetected;в rootvc.

    secondvc=[[SecondVC alloc] initWithSender:self];
    [[self navigationController] pushViewController: secondvc animated:YES];    

при обнаружении касания во втором вызове vv, это уведомит ваш rootvc о том, что касание обнаружено в secondvc.

[sender touchDetected];
0 голосов
/ 25 февраля 2011

Вам необходимо установить ViewController в качестве делегата вашего табличного представления, а затем реализовать метод tableView:didSelectRowAtIndexPath:.Это пример кода напрямую от Apple .

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
 {
     [tableView deselectRowAtIndexPath:indexPath animated:NO];
     BATTrailsViewController *trailsController = [[BATTrailsViewController alloc] initWithStyle:UITableViewStylePlain];
     trailsController.selectedRegion = [regions objectAtIndex:indexPath.row];
     [[self navigationController] pushViewController:trailsController animated:YES];
     [trailsController release];
}
0 голосов
/ 25 февраля 2011

Если объект ячейки, на который вы ссылаетесь, является кнопкой, вы можете сделать это с помощью [button addTarget: self action: @selector (methodYouWantToInvoke)];

0 голосов
/ 25 февраля 2011

Вероятно, вы можете переопределить метод делегата табличного представления didSelectRowAtIndex: чтобы обнаружить касание. Затем вы можете нажать контроллер представления, используя pushViewController: метод навигации контроллера

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