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

时间:2015-04-14 12:42:44

标签: ios objective-c uitabbarcontroller uitabbaritem

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

3 个答案:

答案 0 :(得分:3)

从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 希望这会对你有所帮助。!!

答案 1 :(得分:1)

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

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

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

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

答案 2 :(得分:0)

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;
                     }];