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

时间:2019-02-25 13:25:26

标签: ios swift uiview uitabbarcontroller uitabbar

出于某种原因,我需要在conatiner视图中插入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)

1 个答案:

答案 0 :(得分: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)
}