现在我有一个 viewController(A),它是Navagation Controller的根视图控制器,后跟Tab Bar Controller,我想从它执行segue到另一个 viewController(B),完全取代 A 。
因此,我应用显示详细信息(替换),它在我认为的其他情况下效果很好。但是在这种情况下,当 A 伪装到 B 时,导航栏和标签栏仍然存在。为什么会这样,以及如何解决?
答案 0 :(得分:1)
在viewController(A)中你必须写
override func viewWillAppear(_ animated: Bool) {
self.tabBarController?.tabBar.isHidden = false
self.navigationController?.navigationBar.isHidden = false
}
并且在viewController(B)中你必须写
override func viewWillAppear(_ animated: Bool) {
self.tabBarController?.tabBar.isHidden = true
self.navigationController?.navigationBar.isHidden = true
}
答案 1 :(得分:0)
导航控制器管理一组视图控制器,以便为分层内容提供向下钻取界面。所以它不是问题,它应该如何。请参阅https://developer.apple.com/reference/uikit/uinavigationcontroller,
要为整个应用程序隐藏它,您可以按照以下步骤进行操作
在application:(UIApplication *)application didFinishLaunchingWithOptions:
方法中添加[[UINavigationBar appearance]setHidden:YES];
,它会隐藏整个应用的导航栏。
隐藏TabBarController
的底栏
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"To viewController(B)"]) {
viewControllerB *destViewController = segue.destinationViewController;
// Hide bottom tab bar in the detail view
destViewController.hidesBottomBarWhenPushed = YES;
}
}