取消选择或取消选择iOS 5中标签栏中的所有标签

时间:2012-03-27 10:19:51

标签: ios5 uitabbarcontroller uitabbar uitabbaritem unselect

我是iOS开发的新手,我直接从IOS 5开始。我创建了一个故事板,其中包含一个tabview控制器作为其rootviewcontroller。我已经放了两个标签。

我想最初取消选择/取消选中所有标签。我该怎么做呢?我试过以下

 UIView *view = [[UIView alloc]initWithNibName:@"view" bundle:[NSBundle mainBundle]];
    [self.tabBarController setSelectedViewController:nil];
    [self.tabBarController setSelectedViewController:view];

我添加了一个带有标识符“view”的视图。

但这不起作用,它给出了错误:

 unrecognized selector sent to instance

我也试过以下

[self.tabBarController.tabBar setSelectedItem:nil];

但它说

  

'NSInternalInconsistencyException',原因:'不允许直接修改由标签栏控制器管理的标签栏。'

我在控制器中为第一个选项卡尝试了此代码。我想这样做是因为我想在第一个标签视图的顶部放置一个默认视图,并在下面任何一个标签上点击使用后隐藏它。

5 个答案:

答案 0 :(得分:8)

我用它来清除任何选中的tabBarItems

[myTabBar setSelectedItem:nil];

答案 1 :(得分:4)

老问题。仅作为记录,如果Tab Bar由TabBarController管理,则无法取消选择所有选项卡。方法:

[self.tabBar setSelectedItem:nil];

如果从标签栏控制器管理标签栏 ,则仅。如果是,则无法取消选择所有选项卡,必须始终选择一个。

答案 2 :(得分:1)

这有点可笑。但是当我想让它看起来没有选择时,我只是将-viewWillAppear中的色调颜色设置为灰色,然后在我想要显示选择时将色调颜色设置回“选定”颜色。

// since we cant turn off tabbar selection, change the color to make
// it look like nothing was selected.
self.tabBarController.tabBar.tintColor = [UIColor grayColor];  
-----------
// make sure tintcolor is turned on (just in case another module turned it off
self.tabBarController.tabBar.tintColor = self.view.tintColor;

答案 3 :(得分:0)

我找到了一个解决方案可能不是最好的解决方法,但它对我有用([self.tabBar setSelectedItem:nil];没有)。我将我的标签视图放在父视图(myTabBarViewContainer)中,然后当我想取消选择我的项目时,我在父视图上调用removeFromSuperview并重新启动它:

[self.myTabBarViewContainer.view removeFromSuperview];

然后重新启动它和Voila!

不是很漂亮,但它有效...

答案 4 :(得分:0)

您应该使用UITabBar。不是UITabBarController

取消选择或取消选择tabbar项swift 3.0

tabbar_Main.selectedItem = nil