在选项卡栏控制器中隐藏当前视图控制器的选项卡

Hide tab for current view controller in tab bar controller

我只是想知道如何隐藏 Tab Bar Controller 中选中的当前视图控制器的选项卡项

UIView *parent = self.tabBarController.tabBar.superview; // UILayoutContainerView
    UIView *content = [parent.subviews objectAtIndex:0];  // UITransitionView
    UIView *window = parent.superview;

    [UIView animateWithDuration:0.2
                     animations:^{
                         CGRect tabFrame = self.tabBarController.tabBar.frame;
                         tabFrame.origin.y = CGRectGetMaxY(window.bounds);
                         self.tabBarController.tabBar.frame = tabFrame;
                         content.frame = window.bounds;
                     }];

首先,我认为不可能隐藏 UITabBarItem - 它继承自 UIBarItem 但没有 hidden 属性 - UIBarItem Documentation

您可以尝试将标签栏 selectedViewController 属性 与您当前的视图控制器进行比较吗? - 像下面这样的东西可能会起作用..

if (self.tabBarController.selectedViewController == self) {
    // Do Stuff
}

但即便如此,我认为您还是会发现很难隐藏标签栏项目本身。

从 controllersArray ex 中删除预期的索引。 (1)

NSMutableArray *controllersArray = [NSMutableArray  arrayWithArray:self.tabBar.viewControllers];
[controllersArray removeObjectAtIndex: 1];
[self.tabBar setViewControllers:controllers animated:YES];

也检查这个答案我发现这与你的问题相似Hide tab bar item and aligning other tab items 希望这对你有帮助。!!