5

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

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

 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',原因:'不允许直接修改由标签栏控制器管理的标签栏。'

我已经在控制器中为第一个选项卡尝试了此代码。我想这样做是因为我想在第一个选项卡视图的顶部放置一个默认视图,并在单击下面的任何选项卡后将其隐藏。

4

5 回答 5

9

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

[myTabBar setSelectedItem:nil];
于 2012-06-13T04:49:02.807 回答
5

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

[self.tabBar setSelectedItem:nil];

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

于 2012-07-11T04:54:34.897 回答
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;
于 2016-10-16T23:37:06.577 回答
0

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

[self.myTabBarViewContainer.view removeFromSuperview];

然后重新初始化它,瞧!

不是很漂亮,但它的工作...

于 2013-06-17T12:14:55.267 回答
0

您应该需要使用 UITabBar。不是 UITabBarController

取消选择或取消选择标签栏项目swift 3.0

tabbar_Main.selectedItem = nil
于 2017-02-07T11:59:56.230 回答