Show / Hide tab bar

孤人 提交于 2019-11-29 00:41:40

If you have your Tab Bar Controller as your rootController, you can use rootController.selectedIndex =0 for selecting 1st Tab bar Item, and rootController.selectedIndex =1; and so forth.

As soon as that particular view loads, you can load the other views in an array, and then add it to the rootController.selectedIndex and reloadInputViews with animation.

Edit: (as per the comments)

So you have a tab bar controller, and you want to show the introduction and the login screen while starting the App. If login is successful, you want to present the tab bar controller ! This can be done with ModalViewControllers

  1. In the ViewDidLoad of the view that loads up first, (it's your first tab by default), add

    //Declare Introduction Screen//
    
    IntroductionController *introductionController = [[IntroductionController alloc] initWithNibName:@"IntroductionController" bundle:[NSBundle mainBundle]];
    
    //Give a navigation screen for your introduction screen and set it to introduction screen
    UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:introductionController];
    
    navController.title = @"Introduction";
    navController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
    [self presentModalViewController:navController animated:NO];
    
  2. Now your introduction screen would load as soon as your first tab bar loads. But the loading is instantaneous, so it's not visible to the user's eye. Now reference your Login View Controller like @class LoginController and create an object LoginViewController *lvc;, and synthesize it. Now declare LoginButton and in the IBAction

    -(IBAction) loginAction: (id) sender{
    
     NSLog(@"I clicked Login");
    
     if (self.lvc ==nil){
        self.lvc = [[LoginController alloc] init ];
    
     }
    
     lvc.title = @"Login";
     [self.navigationController pushViewController: self.lvc animated:YES];
    
    
     }
    
  3. And in the LoginViewController, if Login is successful, just do

    [self dismissModalViewControllerAnimated:YES];
    
user842059

create an outlet for the uitabbar, then declare it hidden in the first screen, then create a new void, NOT SENT SO IT DOESNT WORK in the first screen, make it say, lets say, hide. And inside hide, put code saying your uitabbar.hidden = YES; then, to make it work in the other view, write this in the viewDidLoad:

 [(//first view*)[UIApplication sharedApplication].delegate //the void, in this case, hide];
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!