iphoneiphone-sdk-3.0iphone-sdk-3.1.2

how to show a tab bar controller after the login screen is launched?


This is a view based application.

in delegate.m file I have done like this to launch login screen initially:

- (void)applicationDidFinishLaunching:(UIApplication *)application
{
  [window addSubview:viewController.view];
  [window makeKeyAndVisible];

  LoginView *loginView=[[LoginView alloc]initWithNibName:@"LoginView" bundle:nil];

  [window addSubview:loginView.view];
}

By adding the above code I have launched login screen sucessfully, but at the bottom of my login screen I can see a space left out.

How can the tab bar controller get launched after sucessful login?

i have creatd a method called login in my LoginView.m file:

-(void)login
{
  if(login)
  {
    TabBarController *tabBarController = [[TabBarController alloc] initWithNibName:@"TabBarController" bundle:nil];

    [self.view addSubView: aTabBarController.view];
  }

    [aTabBarController release];

Please help me out of this with the appropriate code.


Solution

  • you have to create on method in appDelegate like.. and In appDelegate.h you have to create an object like this

    UITabBarController *Obj_tabbar;

    and then in .m file,

    -(void) switchToTabbarController    
    {    
        Obj_tabbar.delegate = self;
        Obj_tabbar.selectedIndex = 0;
        Tracking_HomeVC *obj = [[Tracking_HomeVC alloc]init];
        [self tabBarController:Obj_tabbar didSelectViewController:obj];
        [self.window addSubview:Obj_tabbar.view];
    

    }

    // At this point Tracking_HomeVC is the first view controller of the TabbarController. and it will be added on window.

    - (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
    

    {

        if([tabBarController selectedIndex] == 0)
        {
           //Write your code here to do with the first view controller object.
        }
    

    }

    and then call it from your LoginView like..

    -(void)LoginPressed    
    {    
         AppAppDelegate *delegate =(AppAppDelegate *) [[UIApplication sharedApplication] delegate];
         [delegate switchToTabbarController];    
    }