How to set the Tab bar item 1 to be selected by default in iphone?

匿名 (未验证) 提交于 2019-12-03 01:14:02

问题:

I am new to iphone development.I am creating a view based application.I have added a tab bar in my view(and not a tab bar controller).By setting the tag vale of the tab bar item to 1, 2 ,I have loaded the view for each tab bar on tabbar item click event.I want the tab bar 1 to be selected by default.What should i do for that?

Here is my code :-

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item {     NSLog(@"didSelectItem: %d", item.tag);     [self activateTab:item.tag]; }  - (void)activateTab:(int)index {     switch (index) {         case 1:                  self.tab1ViewController =[[tab1 alloc] initWithNibName:@"tab1" bundle:nil];              [self.view insertSubview:tab1ViewController.view belowSubview:tabbar1];             if (currentViewController != nil)                 [currentViewController.view removeFromSuperview];             currentViewController = tab1ViewController;              break;         case 2:                  self.tab2ViewController =[[tab2 alloc] initWithNibName:@"tab2" bundle:nil];            [self.view insertSubview:tab2ViewController.view belowSubview:tabbar1];            if (currentViewController != nil)                 [currentViewController.view removeFromSuperview];             currentViewController = tab2ViewController;                      break;         default:             break;     } }

I added the the tab bar in interface builder.Can i do any thing in interface builder?

Please help me out.Thanks.

回答1:

[tabBar setSelectedItem:[tabBar.items objectAtIndex:item.tag]];


回答2:

Can't you just call your method to select a tab whenever you display the view? Like so:

[self activateTab:1];

To change which tab bar item is selected use:

[myTabBar setSelectedItem:myTabBarItem];

Where myTabBarItem is your UITabBarItem instance for the relevant view.



回答3:

For swift 3.0 if tabBar is @IBOutlet use in viewDidLoad:

tabBar.selectedItem = tabBar.items![0]


回答4:

You can set the default index of the TabBarController by setting the selectedIndex property. This can be put in viewDidLoad or Before pushing the controller if you are doing it that way. This is done only when you are using a TabBarController and Not just a TabBar.

tabBarController.selectedIndex = 1;

If you are using a TabBar without a TabBarController then you have to do it like this.

self.tabBar.selectedItem = [self.tabBar.items objectAtIndex:1];


回答5:

The following works perfectly for me in Swift 1.2

myTabBar.selectedItem = myTabBarItem

where myTabBar and myTabBarItem are IBOutlets to the respective elements on the storyboard.



回答6:

if UITabBar is NOT already handled by a UITabBarController

[self.TabBar setSelectedItem:[[self.TabBar items] objectAtIndex:1]];

here TabBar is the Outlet for the UITabBar.

if UITabBar is already handled by a UITabBarController

[self.tabBarController setSelectedIndex:1];


回答7:

Swift 3:

@IBOutlet weak var uiTabBarOutlet: UITabBar!  uiTabBarOutlet.selectedItem = uiTabBarOutlet.items?[0] 


回答8:

How I made it, using UITabBarDelegate:

#import "InfoSecurity.h" #import "TabsCell.h"  @interface InfoSecurity ()   @property (strong, nonatomic) IBOutlet UITabBar *mainTab;  @property(weak,nonatomic) NSArray *TabArray;   @end  @implementation InfoSecurity  - (void)viewDidLoad {     [super        
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!