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?
Remember to set the delegate of the UITabBar in interface builder to be the view controller's class and also set
<UITabBarDelegate>
after the@interface
declaration in the class.you can then set the first tab to be highlighted as so:
Swift 4:
if UITabBar is NOT already handled by a UITabBarController
here TabBar is the Outlet for the UITabBar.
if UITabBar is already handled by a UITabBarController
Can't you just call your method to select a tab whenever you display the view? Like so:
To change which tab bar item is selected use:
Where myTabBarItem is your UITabBarItem instance for the relevant view.
The following works perfectly for me in Swift 1.2
where myTabBar and myTabBarItem are IBOutlets to the respective elements on the storyboard.