0

UITabBarController загружается как rootViewController из UINavigationController. У меня есть 6 Tabs и FifthViewController и SixthViewController находится под таблицей More, и они нажимают DetailsViewController для отображения деталей. Я не могу показать кнопку в DetailsViewController, чтобы вернуться к ParentViewController. Я пробовал все приведенные ниже опции, но ни один из них не работает.Добавление кнопки возврата в UINavigationController внутри UITabBarController

Я загрузки UITabBarController в качестве исходного контроллера представления от Storyboard и имею FifthViewController и SixthViewController, а также от Storyboard. В FifthViewController я устанавливаю заголовок

-(void)viewWillAppear:(BOOL)animated 
{ 
    self.title = @"Alerts" ; 
    self.tabBarController.title = @"Alerts" ; 
} 

В DetailsViewController я устанавливаю Заголовок

-(void)viewWillAppear:(BOOL)animated 
{ 
    //I tired all the below options to show back button 
} 

self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil] ; 

self.navigationController.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil] ; 

self.tabBarController.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil] ; 

self.tabBarController.navigationController.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil] ; 

Где я делаю неправильно?

+0

Показать еще код; не все, но достаточно, чтобы понять, что вы делаете. –

ответ

1

Из вашего описания у вас есть неправильная установка.

UITabBarController должно быть rootViewController. Каждая вкладка должна быть UINavigationController. Каждый контроллер навигации должен быть настроен с помощью соответствующего контроллера корневого представления для каждой вкладки.

Сам контроллер панели вкладок не должен находиться в контроллере навигации.

Вы не должны устанавливать backBarButtonItem любого элемента навигации.

С настройкой, которую я описываю, каждая вкладка имеет свою собственную уникальную навигацию. Например, пользователь может быть на вкладке два и перейти к следующему контроллеру представления на этой вкладке. И вкладки останутся видимыми. Теперь пользователь может перейти на любую вкладку, а затем вернуться на вкладку два и все еще находиться на втором контроллере представления для этой вкладки.

+0

Спасибо за быстрый ответ. Я меняю поток. Но как «FirstTabBarController», так и «SecondTabBarController» загружаются с вкладки «Дополнительно». Думаю, у них уже должен быть навигационный контроллер. правильно? – Trident

+0

Почему у вас есть несколько контроллеров панели? – rmaddy

+0

Чтобы упростить вопрос, который я упомянул, у меня есть только две вкладки. У меня есть 6 вкладок полностью, и мне нужен контроллер навигации для последних двух вкладок, которые находятся в большей вкладке. и у меня только один tabbarcontroller – Trident

1

Вам нужен UINavigationController в качестве ребенка из UITabBarController, если вы хотите, чтобы работать на вкладке со стеком навигации и кнопки возврата.

enter image description here

+0

Спасибо за быстрый ответ. Я меняю поток. Но как «FirstTabBarController», так и «SecondTabBarController» загружаются с вкладки «Дополнительно». Думаю, у них уже должен быть навигационный контроллер. правильно? – Trident

+0

Ничего нет контроллера Nav, если вы не добавили его непосредственно перед представлением, которым вы хотите быть корнем внутри этой вкладки. – Tim

Смежные вопросы