Кнопка Назад навигационного контроллера не работает! - PullRequest
0 голосов
/ 28 марта 2010

По какой-то причине, если я пытаюсь вернуться в главное меню с помощью кнопки «Назад» в верхнем левом углу, в предыдущее меню возвращается только заголовок, но не контроллер представления. Контроллер представления вернется в предыдущее меню, только если я явно вызову popViewControllerAnimated с помощью какой-либо другой кнопки.

Есть ли способ решить это? Я думаю, что я написал что-то не так. Пробовал гуглить, но не смог найти ни одного случая, подобного моему.

Ответы [ 2 ]

0 голосов
/ 05 января 2011

Эта проблема может возникнуть при переопределении следующего метода в вашем контроллере пользовательского представления:

- (UINavigationItem*)navigationItem

Но вы не указываете UIBarButtonItem для leftBarButtonItem возвращенного UINavigationItem .

Если вы используете настраиваемый элемент navigationItem и хотите использовать стандартные кнопки возврата, вы можете добавить метод следующим образом (помните, что каждый UIViewController имеет ссылку на navigationController , который его содержит):

- (void)backButtonTapped
{
    [self.navigationController popViewControllerAnimated:YES];
}

А затем настройте часть пользовательского элемента навигации следующим образом:

- (UINavigationItem*)navigationItem
{
    UIBarButtonItem* newLeftBarButton = [[UIBarButtonItem alloc] initWithTitle:@"Back"
                                                                         style:UIBarButtonItemStyleBordered
                                                                        target:self
                                                                        action:@selector(backButtonTapped)];

    UINavigationItem* navigationItem = [[[UINavigationItem alloc] init] autorelease];

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

0 голосов
/ 03 апреля 2010

У меня точно такая же проблема. Вот мой код:

- (IBAction) showGameView:(id) sender {
    gameView = [[TCGameViewController alloc] initWithNibName:@"TCGameViewController" bundle:[NSBundle mainBundle]];
    [self.navigationController pushViewController:gameView animated:YES];
    [gameView release];
}

И когда я закончу с gameView, я сделаю это:

[self.navigationController setNavigationBarHidden:NO animated:YES];

Но все, что происходит, когда я нажимаю кнопку «назад», - это циклически перемещаться по панели навигации, но никогда не появляется. Я даже не знаю, как его отладить.

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

помогает!

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