Скрыть - Показать обратноBarButton из UINavigationBar? - PullRequest
1 голос
/ 30 мая 2011

Я хочу сделать что-то вроде этого. Все контроллеры помещены в контроллер навигации.ViewController 1 -> ViewController 2 (не показывать кнопку назад, которая появляется автоматически при нажатии) -> ViewController 3 (показывать кнопку «Назад» на панели навигации) -> ViewController 4 (снова скрывать кнопку «Назад»).

I 'мы пытались установить заголовок пустым для ViewController1, но затем кнопка «Назад» нигде не отображается в приложении.Также я попытался установить кнопку задней панели в ноль, прежде чем нажать ViewController2 в стеке навигации.Но ничего не работает, как ожидалось.Кто-нибудь знает, как это сделать.Примечание. Мне нужна кнопка задней панели по умолчанию, которая появляется, когда мы помещаем viewController в стек, а не в элемент левой кнопки панели.Если никакой опции не осталось, тогда я предпочту подход левой кнопки.

Ответы [ 2 ]

7 голосов
/ 30 мая 2011

Я делал что-то подобное раньше.В контроллере, который будет выдвигать контроллер следующего вида, для которого вам не нужна кнопка «назад», вставьте его, куда бы вы ни делали, pushViewController:

myNextViewController.navigationItem.hidesBackButton = YES;
[self.navigationController pushViewController:myNextViewController animated:YES];

В вашем случае это будет в 1-ми третий viewControllers в стеке.

1 голос
/ 30 мая 2011

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

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    self.title = @"Title";
}

- (void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
    self.title = @"";
}

Оригинальный ответ

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

self.navigationItem.hidesBackButton = YES;
...