将UITabBarController插入容器视图时隐藏UITabBar

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

出于某种原因,我需要将UITabBarController插入到容器视图中。

UITabBarController出现时(跳过容器视图的VC)它完美地运行并且所有东西都被显示出来。但是当我将它插入UIView时,如下面的UITabBar存在于Debug View Hierarchy中,但它在应用程序中不可见。在这两种情况下,UITabBar在物体检查员中的归属是相同的。

private var tabBar: TabBarController!
@IBOutlet private var tabBarContainer: UIView! 
...
addChildViewController(tabBar)
tabBarContainer.addSubview(tabBar.view)
tabBar.didMove(toParentViewController: self)
ios swift uiview uitabbarcontroller uitabbar
1个回答
0
投票

好的,所以我已经弄明白了。有两种方法可以解决它:

1:

addChildViewController(tabBar)
tabBar.view.frame = tabBarContainer.bounds
tabBarContainer.addSubview(tabBar.view)
tabBar.didMove(toParentViewController: self)

2:

addChildViewController(tabBar)
tabBarContainer.addSubview(tabBar.view)
tabBar.view.translatesAutoresizingMaskIntoConstraints = false
tabBarContainer.translatesAutoresizingMaskIntoConstraints = false
tabBarContainer.snp.makeConstraints { make in
    make.bottom.equalTo(tabBar.view.snp.bottom)
    make.top.equalTo(tabBar.view.snp.top)
    make.left.equalTo(tabBar.view.snp.left)
    make.right.equalTo(tabBar.view.snp.right)
}
© www.soinside.com 2019 - 2024. All rights reserved.