gabboSonc
gabboSonc

Reputation: 351

Add view in tab bar project - xcode

I have a x-code project made by tab bar. On AppDelegate.m I create three buttons for each view:

self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
UIViewController *viewController1 = [[[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil] autorelease];
UIViewController *viewController2 = [[[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil] autorelease];
UIViewController *viewController3=[[[ThirdViewController alloc]initWithNibName:@"ThirdViewController" bundle:nil]autorelease];
self.tabBarController = [[[UITabBarController alloc] init] autorelease];
self.tabBarController.viewControllers = @[viewController1, viewController2,viewController3];
self.window.rootViewController = self.tabBarController;
[self.window makeKeyAndVisible];
return YES;

When I am on the first view I want to create a button that calls another view:

-(IBAction)btnPush{
 [[self navigationController] pushViewController:newView animated:YES];
}

but when the new view comes up it covers the tab bar on the botton. How can I do to fix the problem?

Upvotes: 0

Views: 556

Answers (1)

Dipen Panchasara
Dipen Panchasara

Reputation: 13600

Instead of Adding UIViewController in UITabBarController add UINavigationController as following

UIViewController *viewController1 = [[[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil] autorelease];
UIViewController *viewController2 = [[[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil] autorelease];
UIViewController *viewController3=[[[ThirdViewController alloc]initWithNibName:@"ThirdViewController" bundle:nil]autorelease];

Now add your ViewController to NavigationController

UINavigationController *navController1 = [[UINavigationController alloc] initWithRootViewController:viewController1];
UINavigationController *navController2 = [[UINavigationController alloc] initWithRootViewController:viewController2];
UINavigationController *navController3 = [[UINavigationController alloc] initWithRootViewController:viewController3];

self.tabBarController.viewControllers = @[navController1, navController2,navController3];

It will add Navigation Controller in TabBarController

Upvotes: 1

Related Questions