如何在购物车为空时删除结帐栏项目,并在购物车已加载时再次显示,以及在有 3 项项目时删除空间
[]
我尝试了这个,但它从数组中删除了该项目
if var tabs = self.tabBarController?.viewControllers {
tabs.remove(at: indexToRemove)
self.tabBarController?.viewControllers = tabs
} else {
print("There is something wrong with tabbar
controller")
}
上面您是从
tabs
数组中删除 viewController,而不是 tabBarController 的 viewControllers 数组。 (检查两个数组的计数来显示这一点)
您需要做的就是:
self.tabBarController.viewControllers?.remove(at: indexToRemove)
这将从选项卡栏中删除 viewController。顺便说一句,根据 viewController 的创建方式,它也可能会取消初始化它,所以如果您打算稍后再次添加它而不重新初始化它,请注意这一点。确保你对它有强有力的参考。要将其添加回来,只需将其插入到数组中即可。
在我的例子中,视图控制器是手动处理的,所以
tabBarController
为零。这就是我对问题摘要本身的回答:
tabBar.items?.removeFirst()
tabBar.items?.insert(yourNewTab, at: 0)