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
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];
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];
}
And in the LoginViewController
, if Login is successful, just do
[self dismissModalViewControllerAnimated:YES];
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…