TabBarController в NavigationConroller

#ios #uinavigationcontroller #uitabbarcontroller

#iOS #uinavigationcontroller #uitabbarcontroller

Вопрос:

У меня есть UITabBarController в UINavigationController, я знаю, что документация iOS для UINavigationController гласит следующее:

 rootViewController

The view controller that resides at the bottom of the navigation stack. This object cannot be an instance of the UITabBarController class.
  

Значит ли это, что если у меня уже есть UIViewControllers в стеке навигации, тогда можно нажать UITabBarController, если это не корневой элемент?

На данный момент у меня это есть, и все кажется нормальным, за исключением того, что когда я открываю UITabBarController, ни в одном из элементов TabBarItems ViewController не вызывается функция dealloc или viewDidUnload, нужно ли мне сделать что-то подобное, чтобы заставить viewWillAppear работать?

 - (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {  
[viewController viewWillAppear:NO];
}
  

Спасибо

Ответ №1:

Я не уверен, что наличие UITabBarController в UINavigationController будет работать.

Обычно я делаю это наоборот

 companyNavController = [[[UINavigationController alloc] initWithRootViewController:companyViewController] autorelease];
companyNavController.tabBarItem = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemSearch tag:1];

[tabBarController setViewControllers:[NSArray arrayWithObjects:phoneBookNavController, companyNavController, faveNavController, settingsNavController, nil]];
  

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

HTH