iOS 9.0 Tabbar скрывается автоматически, а viewcontroller исчезает при нажатии

У меня есть TabBarController с 4 вкладками. Когда я нажимаю ViewController из вкладки, вкладка автоматически скрывается и ничего не показывает в представлении. Но ViewController содержит табличное представление с данными. Я также реализовал делегат tableview. Я не получаю журналы делегата tableview.

в appdelegate didFinishLaunchingWithOptions ()

self.window = [[UIWindow alloc] initWithFrame: [[UIScreen mainScreen] границы]];

self.homeScreen = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
self.rootNav = [[UINavigationController alloc]initWithRootViewController:self.homeScreen];

self.window.rootViewController = self.rootNav;

[self.window makeKeyAndVisible];

Загрузите TabBar здесь:

 myAppDelegate.myTabBarController.selectedIndex = 0;
myAppDelegate.myTabBarController.tabBar.translucent = NO;
myAppDelegate.myTabBarController.tabBar.opaque = YES;


location_select *tab1 = [[location_select alloc] initWithNibName:@"location_select" bundle:nil];
tab1.tabBarItem.image = [UIImage imageNamed:@"Restaurants.png"];
location_select *tab2 = [[location_select alloc] initWithNibName:@"location_select" bundle:nil];
tab2.title = @"Cart";
tab2.tabBarItem.image = [UIImage imageNamed:@"Cart.png"];
Deal_ViewController *tab3 = [[Deal_ViewController alloc] initWithNibName:@"Deal_ViewController" bundle:nil];
tab3.title = @"Deals";
tab3.tabBarItem.image = [UIImage imageNamed:@"Deals.png"];

MoreViewController *tab4 = [[MoreViewController alloc] initWithNibName:@"MoreViewController" bundle:nil];
tab4.title = @"More";
tab4.tabBarItem.image = [UIImage imageNamed:@"More.png"];
myAppDelegate.myTabBarController.viewControllers = [NSArray arrayWithObjects:tab1,tab2,tab3,tab4,nil];
[myAppDelegate.rootNav pushViewController:myAppDelegate.myTabBarController animated:YES];

На вкладке 4 я нажимаю Profile_ViewController:

 Profile_ViewController *vc = [[Profile_ViewController alloc] initWithNibName:@"Profile_ViewController" bundle:[NSBundle mainBundle]];
 [self.navigationController pushViewController:vc animated:YES];

И уже туда подала заявку:

myAppDelegate.myTabBarController.hidesBottomBarWhenPushed=NO; 
and 
[self.tabBarController setHidesBottomBarWhenPushed:NO];

in viewWillAppear из Profile_ViewController. Ничего не работает. Я просто вижу пустой белый экран.


person Jamshed Alam    schedule 26.09.2016    source источник
comment
Вы имеете в виду, что хотите перейти к другому приложению viewCont с одной из 4 вкладок?   -  person vaibhav    schedule 26.09.2016
comment
@jamshed Не могли бы вы поделиться дополнительной информацией о структуре вашего приложения? Вы используете UINavigationController в своем приложении?   -  person Shayan Jalil    schedule 26.09.2016
comment
вы можете поделиться снимком экрана раскадровки ??   -  person Pankaj Teckchandani    schedule 26.09.2016
comment
да, вы хотите перейти к другому приложению viewCont с одной из 4 вкладок. вайбхав   -  person Jamshed Alam    schedule 26.09.2016
comment
нет, может быть проблема с UINavigationController. Давай изменим это. Шаян Джалил   -  person Jamshed Alam    schedule 26.09.2016
comment
я использую xib. @Pankaj Teckchandan   -  person Jamshed Alam    schedule 26.09.2016


Ответы (2)


location_select *tab1 = [[location_select alloc] initWithNibName:@"location_select" bundle:nil];
tab1.tabBarItem.image = [UIImage imageNamed:@"Restaurants.png"];
location_select *tab2 = [[location_select alloc] initWithNibName:@"location_select" bundle:nil];
tab2.title = @"Cart";
tab2.tabBarItem.image = [UIImage imageNamed:@"Cart.png"];
Deal_ViewController *tab3 = [[Deal_ViewController alloc] initWithNibName:@"Deal_ViewController" bundle:nil];
tab3.title = @"Deals";
tab3.tabBarItem.image = [UIImage imageNamed:@"Deals.png"];

MoreViewController *tab4 = [[MoreViewController alloc] initWithNibName:@"MoreViewController" bundle:nil];
tab4.title = @"More";
tab4.tabBarItem.image = [UIImage imageNamed:@"More.png"];




UINavigationController *nav1 = [[UINavigationController alloc] initWithRootViewController:tab1];

UINavigationController *nav2 = [[UINavigationController alloc] initWithRootViewController:tab2];

UINavigationController *nav3 = [[UINavigationController alloc] initWithRootViewController:tab3];

UINavigationController *nav4 = [[UINavigationController alloc] initWithRootViewController:tab4];

myAppDelegate.myTabBarController.viewControllers = [NSArray arrayWithObjects:nav1,nav2,nav3,nav4,nil];
[myAppDelegate.rootNav pushViewController:myAppDelegate.myTabBarController animated:YES];

and then later on to push your vc to tab 4 you should do

Profile_ViewController *vc = [[Profile_ViewController alloc] initWithNibName:@"Profile_ViewController" bundle:[NSBundle mainBundle]];
[nav4 pushViewController:vc animated:YES];

вот решение, связанное с вашим запросом, которое может вам помочь

person Pankaj Teckchandani    schedule 26.09.2016
comment
да. Я это уже сделал. Я просто забыл, что столкнулся с той же проблемой 2 года назад. Как бы то ни было, спасибо за ваши усилия. - person Jamshed Alam; 26.09.2016
comment
Всего наилучшего :) - person Pankaj Teckchandani; 27.09.2016

Возможно, вы сохранили свою архитектуру следующим образом: Контроллер навигации ---> Контроллер панели вкладок -> 4 дочерних контроллера представления.

Вам нужно сделать этот Контроллер панели вкладок -> 4 дочерних контроллера (каждый из этих 4 дочерних контроллеров представления имеет свой собственный контроллер навигации).

person Pankaj Teckchandani    schedule 26.09.2016
comment
Уже добавил. Не работает. Панель вкладок скрыть по-прежнему. Но я получаю толкающий экран. - person Jamshed Alam; 26.09.2016
comment
Нет, в вашей текущей архитектуре только один контроллер навигации. Я говорю, что у вас должно быть 4 разных контроллера навигации (по одному контроллеру навигации для всех ваших 4 контроллеров представления). - person Pankaj Teckchandani; 26.09.2016