Deselect or unselect all tabs in tabbar in iOS 5

我们两清 提交于 2019-11-29 21:03:15

问题


I am new to iOS development and I have started with IOS 5 directly. I have created a storyboard which consists of a tabview controller as its rootviewcontroller. I have put 2 tabs to it.

I want to deselect/unselect all the tabs initially. How do I do this? I have tried the following

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

where I have added a view with identifier "view".

But this didn't work, it gives error:

 unrecognized selector sent to instance

I also tried the following

[self.tabBarController.tabBar setSelectedItem:nil];

but it says

'NSInternalInconsistencyException', reason: 'Directly modifying a tab bar managed by a tab bar controller is not allowed.'

I have tried this code in controller for the first tab. I want to do this because I want to put a default view on top of first tab view and hide it once the use is clicked on any of the tabs below.


回答1:


I use this to clear any selected tabBarItems

[myTabBar setSelectedItem:nil];



回答2:


Old question. Just for the record, you can't deselect all the Tabs if the Tab Bar is managed by a TabBarController. The method:

[self.tabBar setSelectedItem:nil];

Works only if the Tab Bar is not managed from a Tab Bar Controller. If it is, there's no way to deselect all the tabs, there must be one selected at all time.




回答3:


This is a little hoakey. But I simply set the tint color in -viewWillAppear to gray when I wanted it to look like there was no selection and then set the tint color back to the "selected" color when I want to show the selection.

// 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;



回答4:


I've found a solution that is probably not the best way to go about it but it worked for me ([self.tabBar setSelectedItem:nil]; didn't). I put my tab view in a parent view (myTabBarViewContainer) and then when I want to deselect my items I call removeFromSuperview on the parent view and re-init it :

[self.myTabBarViewContainer.view removeFromSuperview];

Then re-init it and Voila!

Not very pretty but it works...




回答5:


You Should need to use UITabBar. Not UITabBarController

deselect or unselect tabbar item swift 3.0

tabbar_Main.selectedItem = nil


来源:https://stackoverflow.com/questions/9887607/deselect-or-unselect-all-tabs-in-tabbar-in-ios-5

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!