UINavigationController UIBarButtonItem не отвечает на метод действия - PullRequest
0 голосов
/ 12 мая 2011

У меня есть навигационное приложение с корневым viewcontroller и дочерним viewcontroller. В дочернем методе -didSelectRowAtIndexPath я добавляю кнопку возврата с целью / действием следующим образом: Когда выбрана кнопка «Назад», я хочу вернуться к корневому виду, а не к (предыдущему) дочернему виду. Однако я не могу понять, почему метод действия не запускается:

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

    Question *newQuestion = [[Question alloc]
                           initWithNibName:@"Question"
                           bundle:nil];
    newQuestion.testQuestion =  self.testQuestion;
    [self.navigationController dismissModalViewControllerAnimated:YES]; 
    [tableView deselectRowAtIndexPath:indexPath animated:YES];

    UIBarButtonItem *backButton = [[UIBarButtonItem alloc] 
                    initWithTitle:@"Quiz" 
                    style:UIBarButtonItemStylePlain 
                    target:self 
                    action:@selector(backToMenu)];

    self.navigationItem.backBarButtonItem = backButton;
    [backButton release];
    [self.navigationController pushViewController:newQuestion
                                         animated:YES];
    [newQuestion release];
}

В верхней части моего класса Question я включаю метод backToMenu:

-

(void)backToMenu {
    NSLog(@" backToMenu");
     [self.navigationController popViewControllerAnimated:YES];

Однако, -backToMenu никогда не запускается; Я никогда не вижу дисплей NSLog. Мой -viewWillAppear срабатывает, но я не знаю, как определить, нахожусь ли я там из-за нажатия кнопки «Назад» или выбора строки таблицы. Наверное, очевидно для вас, но я в тупике ... THX

1 Ответ

0 голосов
/ 12 мая 2011

Почему вы не кладете кнопку «назад» на экран, вы хотите, чтобы она отображала экран «Вопрос», а в методе «backToMenu» вы можете использовать

[self.navigationController popToRootViewControllerAnimated:YES];
...