我是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',原因:'不允许直接修改由标签栏控制器管理的标签栏。'
我在控制器中为第一个选项卡尝试了此代码。我想这样做是因为我想在第一个标签视图的顶部放置一个默认视图,并在下面任何一个标签上点击使用后隐藏它。
答案 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