如何在选项卡栏上呈现视图控制器

问题描述 投票:0回答:1

我有一个带有 4 个导航控制器的选项卡栏,每个导航控制器都包含一个视图控制器。 当我在这个视图控制器上时,我在它上面呈现另一个视图控制器:

let vc = PersonalInfosVC()
self.navigationController?.pushViewController(vc, animated: true)

这有效。但是当我这样做时,

PersonalInfosVC()
仍然在选项卡栏的“后面”,我仍然可以看到它。我想将新的视图控制器推到选项卡栏上,当我用
navigationController?.popViewController(animated: true)
关闭它时,我回到第一个视图控制器,但使用选项卡栏。

这是我的故事板配置:

我可以使用

tabBarController?.tabBar.isHidden = true
,但它真的很难看。有办法这样做吗?谢谢

ios swift uiviewcontroller uinavigationcontroller
1个回答
0
投票

你只有两个选择,其中之一你已经做了。

  1. 当您按下新的视图控制器时,动画显示选项卡栏的隐藏。当您弹出视图控制器时,以动画方式显示选项卡栏。

    UIView.animate(withDuration: 0.3) {
        tabBarController?.tabBar.isHidden = true
    }
    
  2. 呈现新的视图控制器而不是推送它。关闭它而不是弹出它。

    let vc = PersonalInfosVC()
    let nc = UINavigationController(rootViewController: vc)
    self.present(nc, animated: true)
    

    您可能需要添加一个按钮来关闭所显示的控制器。

© www.soinside.com 2019 - 2024. All rights reserved.