Yes you can... in your first controller, after some job is completed then push the Tabbar controller.
Example:-
Assuming you have TabBarController class by sub classing UITabBarController.
- (void) doSomeJob
{
if(true)
{
TabBarController *aTabBarController = [[TabBarController alloc] initWithNibName:@"TabBarController" bundle:nil];
[self.navigationController pushViewController:aTabBarController animated:YES];
[aTabBarController release];
}
}
EDITED custom tab bar :
.h file
@interface TabBarController : UITabBarController<UITabBarControllerDelegate, UINavigationControllerDelegate>
{
UITabBarController *tabController;
UINavigationController *1NavController;
UINavigationController *2hNavController;
}
@property (nonatomic, retain) UITabBarController *tabController;
@property (nonatomic, retain) UINavigationController *1NavController;
@property (nonatomic, retain) UINavigationController *2hNavController;
.m file :
- (void)viewDidLoad
{
[super viewDidLoad];
tabController = [[UITabBarController alloc] init];
tabController.delegate = self;
tabController.tabBar.backgroundColor = [UIColor clearColor];
//Add some tabs to the controller...
1ViewController *1ViewController = [[1ViewController alloc] initWithNibName: @"1ViewController" bundle: nil];
1NavController = [[UINavigationController alloc] initWithRootViewController:1ViewController];
1NavController.tabBarItem = [[UITabBarItem1 alloc] init];
2ViewController *aSearchViewController = [[2ViewController alloc] initWithNibName: @"2ViewController" bundle: nil];
2NavController = [[UINavigationController alloc] initWithRootViewController:2ViewController];
2NavController.tabBarItem = [[UITabBarItem2 alloc] init];
tabController.viewControllers = [NSArray arrayWithObjects: 1NavController,2NavController,nil];
[self.view addSubview:tabController.view];
}
Also you need to implement Tab bar's delegate methods accordingly....