我想从A屏幕上删除黑色的标签栏。我试着做下面的代码来筛选,但它删除了白色的。

override func viewDidLoad() {
        super.viewDidLoad()
        self.tabBarController?.tabBar.isHidden = true

    }

ios - 如何从 View 中删除一个标签栏,使两个标签栏相互重叠?-LMLPHP
ios - 如何从 View 中删除一个标签栏,使两个标签栏相互重叠?-LMLPHP

最佳答案

我认为这对iOS用户来说不是一个很好的用户体验,但是无论如何,请尝试下面的方法,它会对你很好
1-首先,尝试在stroyboard中构建以下层次结构
ios - 如何从 View 中删除一个标签栏,使两个标签栏相互重叠?-LMLPHP
注意,灰色视图控制器不是UITabBarController它只是一个UIViewController,但它包含一个UITabBar对象
2-您需要给红色视图控制器stroyboardid“red view controller”,也给蓝色视图控制器“BlueViewController”
3-为第一个名为“Favorite”的uitabaritem指定嵌套的UITabBarItem标记0,为第二个名为“more”的uitabaritem指定标记1
ios - 如何从 View 中删除一个标签栏,使两个标签栏相互重叠?-LMLPHP
4-最后将以下类添加到具有UIViewController对象的UITabBar中,在我们的示例中,它将是gray view控制器

class SecondViewController: UIViewController {

lazy var blueViewController: UIViewController? = {
    self.storyboard?.instantiateViewController(withIdentifier: "BlueViewController")
}()

lazy var redViewController: UIViewController? = {
    self.storyboard?.instantiateViewController(withIdentifier: "RedViewController")
}()

@IBOutlet weak var containerView: UIView!
@IBOutlet weak var nestedTabBar: UITabBar!
override func viewDidLoad() {
    super.viewDidLoad()
    nestedTabBar.delegate = self
    addRedViewController()
    self.nestedTabBar.selectedItem = self.nestedTabBar.items?.first
}

func addBlueViewController() {

    if let redViewController = redViewController {
        redViewController.willMove(toParent: nil)
        redViewController.view.removeFromSuperview()
        redViewController.removeFromParent()
    }

    if let blueViewController = blueViewController {
        addChild(blueViewController)
        blueViewController.view.frame = containerView.frame
        containerView.addSubview(blueViewController.view)
        blueViewController.didMove(toParent: self)
    }
}

func addRedViewController() {

    if let blueViewController = blueViewController {
        blueViewController.willMove(toParent: nil)
        blueViewController.view.removeFromSuperview()
        blueViewController.removeFromParent()
    }

    if let redViewController = redViewController {
        addChild(redViewController)
        redViewController.view.frame = containerView.frame
        containerView.addSubview(redViewController.view)
        redViewController.didMove(toParent: self)
    }
  }
}

extension SecondViewController: UITabBarDelegate {

func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {

    if item.tag == 0 {
        addRedViewController()
    } else {
        addBlueViewController()
    }
  }
}

关于ios - 如何从 View 中删除一个标签栏,使两个标签栏相互重叠?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56234838/

10-13 04:34
查看更多