Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/98.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何删除swift 3中的Tabbar项_Ios_Swift_Swift3_Uitabbarcontroller_Uitabbar - Fatal编程技术网

Ios 如何删除swift 3中的Tabbar项

Ios 如何删除swift 3中的Tabbar项,ios,swift,swift3,uitabbarcontroller,uitabbar,Ios,Swift,Swift3,Uitabbarcontroller,Uitabbar,我的UIAbbarController中有5个UIViewcontroller,但我需要在选项卡栏中显示其中4个,因此我尝试从UIAbbarController中删除最后一个选项卡栏项 self.tabBarController?.tabBar.items?.removeLast() 但我得到了这个错误 不允许直接修改由选项卡栏控制器管理的选项卡栏 允许 那么如何从tabbar中删除最后一个tabbar项呢?您应该在tabbar控制器中操作ViewController数组。 试试这个 if l

我的UIAbbarController中有5个UIViewcontroller,但我需要在选项卡栏中显示其中4个,因此我尝试从UIAbbarController中删除最后一个选项卡栏项

self.tabBarController?.tabBar.items?.removeLast()
但我得到了这个错误

不允许直接修改由选项卡栏控制器管理的选项卡栏 允许


那么如何从tabbar中删除最后一个tabbar项呢?

您应该在tabbar控制器中操作ViewController数组。 试试这个

if let tabBarController = self.tabBarController {
     let indexToRemove = 4
     if indexToRemove < tabBarController.viewControllers?.count {
         var viewControllers = tabBarController.viewControllers
         viewControllers?.remove(at: indexToRemove)
         tabBarController.viewControllers = viewControllers
     }
 }
如果让tabBarController=self.tabBarController{
让indexToRemove=4
如果indexToRemove
要从
tabBarController?
中删除ViewController,您只需实现:

tabBarController?.viewControllers?.removeLast()
假设您删除了最后一个控制器(选项卡)

它涉及:

选项卡栏显示的根视图控制器数组 接口

显然,您可以删除和控制器,例如,为了删除第一个控制器:

tabBarController?.viewControllers?.remove(at: 0)

更新:


首先,我需要打开的第五个viewcontroller,我不会在中显示它 塔巴。用户无法转到第五个选项卡栏。只有我可以导航用户。所以原因 我正努力做到这一点

为了实现这一点,您所要做的就是让故事板的结构如下:


考虑到第一个视图控制器(应显示tabbar控制器的视图控制器)是您不想让它出现在tabbar中的视图控制器。

要删除您知道其引用或位置的选项卡栏项,可以通过以下方式执行:

tabBarController?.viewControllers?.remove(at: 4)

我只需要从tabbar中删除最后一项而不是viewcontroller请详细说明,如果从tabbar中删除了最后一项,那么如何导航到其viewcontroller?默认情况下,从
viewControllers
数组中删除视图控制器应自动删除其在选项卡栏中的项。我将不再导航此viewcontroller。所以我只需要从tabbar中删除最后一项,而不是viewcontroller@MuratKaya确切地这就是为什么您应该从“tabBarController?.viewControllers?”中删除viewcontroller,并且tabbar将按其应有的方式显示,只显示所需视图控制器的项目。您是否尝试过实现它:)?首先,我需要打开的第五个viewcontroller,我不会在tabbar中显示它。用户无法转到第五个选项卡栏。只有我可以导航用户。因此,我正在尝试这样做。您应该对其进行注释,而不是复制、粘贴…注意,如果
tabBarController?.viewControllers?
包含的视图控制器少于5个,则应用程序将崩溃。正如我所说,如果您知道要删除的特定控制器的引用,您可以使用此选项。在我阅读了您的评论后,我无法理解您想要什么。