我在我的UITabbarController中有5个UIViewcontroller,但是我需要在tabbar中显示它们4,所以我试图从UITabbarController中删除最后一个tabbar项目。
self.tabBarController?.tabBar.items?.removeLast()
但是我收到了这个错误。
直接修改由标签栏控制器管理的标签栏不是 允许
那么如何从tabbar中删除最后一个tabbar项?
答案 0 :(得分:1)
您应该在tabbar控制器中操作viewcontrollers数组。 试试这个。
if let tabBarController = self.tabBarController {
let indexToRemove = 4
if indexToRemove < tabBarController.viewControllers?.count {
var viewControllers = tabBarController.viewControllers
viewControllers?.remove(at: indexToRemove)
tabBarController.viewControllers = viewControllers
}
}
答案 1 :(得分:1)
要从tabBarController?
中删除ViewController,您应该只执行:
tabBarController?.viewControllers?.removeLast()
假设你删除了最后一个控制器(标签)。
有关选项卡栏显示的根视图控制器数组 接口
显然,你可以移除和控制器,例如,删除第一个控制器:
tabBarController?.viewControllers?.remove(at: 0)
<强>更新强>
首先,我需要打开第五个视图控制器,我不会显示它 的TabBar。用户无法进入第五个标签栏。只有我可以导航用户。所以原因 我试图这样做。
为实现这一目标,您应该做的就是让您的故事板结构为:
考虑到第一个视图控制器(应该显示标签栏控制器的视图控制器)是您不想让它出现在标签栏中的视图控制器。
答案 2 :(得分:0)
要删除您知道参考或位置的标签栏项目,您可以这样做:
tabBarController?.viewControllers?.remove(at: 4)