简体   繁体   中英

Navigation controller inside TabViewController

I am editing my question that i had programetically add the tabbar as shown below:-

FirstViewController *obj_FirstViewController = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil];     
SecondViewController *obj_SecondViewController = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
ThirdViewController *obj_ThirdViewController = [[ThirdViewController alloc] initWithNibName:@"ThirdViewController" bundle:nil]; 
navigation1 = [[UINavigationController alloc] initWithRootViewController:obj_FirstViewController];  
navigation2 = [[UINavigationController alloc] initWithRootViewController:obj_SecondViewController];
navigation3 = [[UINavigationController alloc] initWithRootViewController:obj_ThirdViewController];
MainTabBar = [[UITabBarController alloc] init];
MainTabBar.delegate=self;
[MainTabBar setViewControllers:[NSArray arrayWithObjects:navigation1,navigation2,navigation3,nil]];
MainTabBar.view.frame=self.view.frame;
MainTabBar.selectedIndex=0;
[self.view addSubview:MainTabBar.view]

By writing this in (void)viewDidLoad i got the 3 tab in my viewcontroller.But the problem is i want to set the name of the tab as

  1. Home
  2. Favorites
  3. About us

I had tried by writing the below code:-

  1. obj_FirstViewController.tabBarItem.title=@"Home";
  2. self.title = @"My View Controller";

But this does not work - can anyone please help me how to do this programatically? Where to write the line so that i get this 3 name in my tab bar

可以在单独的视图控制器中添加tabBar,就像在rootview控制器中一样,然后在根视图控制器的viewDidLoad中,将创建的tabbar对象分配给声明的appdelegate tabBar ...然后仅将appdelegate tabbar用于其他导航。

this is how I made it

1) I made a view controller with your tabbar 2) added view controllers for each tab and a method to the tabbar view controller class: -(void)updateContentsWithViewController:(UIViewController *)insideViewController

the method is called when a tabbutton is pressed.

3) here is the code for the switching

- (void)updateContentsWithViewController:(UIViewController *)insideViewController {
//internalViewController is the viewController which you change 

[internalViewController.view removeFromSuperview];
[internalViewController release];

internalViewController = [insideViewController retain];
navController = [[UINavigationController alloc] initWithRootViewController:insideViewController];
[navController setNavigationBarHidden:YES];

[navController.view setFrame:CGRectMake(0, 0, 320, 348)];
//frame I needed in my app .. can be changed 

[self.internalView addSubview: navController.view];
//navController is the property for the navigationController

[self.view sendSubviewToBack: self.internalView];

}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM