#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