如何在 swift 4 中删除和添加选项卡栏项目

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

如何在购物车为空时删除结帐栏项目,并在购物车已加载时再次显示,以及在有 3 项项目时删除空间

[this is the 4 item]

我尝试了这个,但它从数组中删除了该项目

  if var tabs = self.tabBarController?.viewControllers {
            tabs.remove(at: indexToRemove)
            self.tabBarController?.viewControllers = tabs
        } else {
            print("There is something wrong with tabbar 
  controller")
        }
swift xcode tabbar
2个回答
0
投票

上面您是从

tabs
数组中删除 viewController,而不是 tabBarController 的 viewControllers 数组。 (检查两个数组的计数来显示这一点)

您需要做的就是:

 self.tabBarController.viewControllers?.remove(at: indexToRemove)

这将从选项卡栏中删除 viewController。顺便说一句,根据 viewController 的创建方式,它也可能会取消初始化它,所以如果您打算稍后再次添加它而不重新初始化它,请注意这一点。确保你对它有强有力的参考。要将其添加回来,只需将其插入到数组中即可。


0
投票

在我的例子中,视图控制器是手动处理的,所以

tabBarController
为零。这就是我对问题摘要本身的回答:

tabBar.items?.removeFirst()

tabBar.items?.insert(yourNewTab, at: 0)
© www.soinside.com 2019 - 2024. All rights reserved.