Je veux définir le titre de l'onglet par programme, mais cela ne fonctionne pas. Mon code est ci-dessous:
- (IBAction)tab1Click:(id)sender {
myTabBarController = [[UITabBarController alloc] init];
view2Controller = [[View2Controller alloc] init];
[view2Controller setTitle:@"title"];
view3Controller = [[View3Controller alloc] init];
deneme = [[ViewController alloc] init];
myTabBarController.viewControllers = [NSArray arrayWithObjects:deneme, view2Controller,view3Controller, nil];
[self.view addSubview:myTabBarController.view];
myTabBarController.selectedIndex=1;
}
Vous pouvez définir facilement toutes les icônes UITabBar. Vous pouvez le faire dans votre viewWillAppear:
méthode:
[[self.tabBarController.tabBar.items objectAtIndex:0] setTitle:NSLocalizedString(@"BotonMapas", @"comment")];
[[self.tabBarController.tabBar.items objectAtIndex:1] setTitle:NSLocalizedString(@"BotonRA", @"comment")];
[[self.tabBarController.tabBar.items objectAtIndex:2] setTitle:NSLocalizedString(@"BotonEstado", @"comment")];
[[self.tabBarController.tabBar.items objectAtIndex:3] setTitle:NSLocalizedString(@"LabelInfo", @"comment")];
Solution Swift 3.1
self.tabBarController?.tabBar.items?[0].title = NSLocalizedString("BotonMapas", comment: "comment")
self.tabBarController?.tabBar.items?[1].title = NSLocalizedString("BotonRA", comment: "comment")
self.tabBarController?.tabBar.items?[2].title = NSLocalizedString("BotonEstado", comment: "comment")
self.tabBarController?.tabBar.items?[3].title = NSLocalizedString("LabelInfo", comment: "comment")
Comment je le fais dans le contrôleur de vue réel (pas le délégué d'application):
// set tab title
self.title = @"Tab Title";
// optionally, set different title for navigation controller
self.navigationItem.title = @"Nav Title";
// Note: self.title will reset Nav Title. Use it first if you want different titles
Un moyen simple de le faire: dans la méthode viewDidLoad
de votre viewController2
, Définissez self.title = @"MyTitle";
[view2Controller setTitle:@"ImATitle"];
pourrait être ce que vous cherchez
edit: ok je viens de tester cela et cela fonctionne pour moi, alors essayez-le
UINavigationController *nav1 = [[UINavigationController alloc] init];
myViewController *myView = [[myViewController alloc] init];
//myView.title = @"Title"; //prob not needed
[nav1 pushViewController: myView animated:NO];
UITabBarItem *item = [[UITabBarItem alloc] initWithTitle:@"Title" image:[UIImage imageNamed:@"title.png"] tag:0];
nav1.tabBarItem = item;
UITabBarController *tbc = [[UITabBarController alloc] init];
tbc.viewControllers = [NSArray arrayWithObjects:nav1, nil];
Le titre affiché sur un élément de barre d'onglets donné est déterminé par l'instance correspondante du contrôleur de vue UITabBarItem. Ceux-ci ne sont pas modifiables, cependant ... si vous voulez changer le titre (ou l'image ou la balise), vous devez créer un nouvel élément et l'assigner au contrôleur de vue.
UITabBarItem *item2 = [[UITabBarItem alloc initWithTitle:@"someTitle" image:someImage tag:0];
viewController2.tabBarItem = item2;
essaye ça
[(UIViewController *)[tabBarController.viewControllers objectAtIndex:Index] setTitle:@"Title"];
ou vous pouvez également définir la barre d'onglets de cette manière
UITabBarItem *tabItem = [[[tabBarController tabBar] items] objectAtIndex:INDEX];
[tabItem setTitle:@"TITLEe"];
déclarez d'abord UITabBarDelegate
- (IBAction)tab1Click:(id)sender {
myTabBarController = [[UITabBarController alloc] init];
myTabBarController.delegate = self;
view2Controller = [[View2Controller alloc] init];
[view2Controller setTitle:@"title"];
view3Controller = [[View3Controller alloc] init];
deneme = [[ViewController alloc] init];
dename.title = @"Dename";
view2Conreoller.title = @"View2";
view3Conreoller.title = @"View3";
myTabBarController.viewControllers = [NSArray arrayWithObjects:deneme, view2Controller,view3Controller, nil];
[self.view addSubview:myTabBarController.view];
myTabBarController.selectedIndex=1;
}
et même vous pouvez définir des images d'onglet en utilisant
view2Controller.tabBarItem.image = [UIImage imageNamed:@"misle.png"];
Si vous appelez cela à partir d'un UIViewController intégré, vous pouvez modifier le titre de la barre d'onglets parent avec:
self.tabBarController.title = @ "Mon titre.";
Dans Swift vous pouvez changer le titre de l'élément ITabBarController dans viewDidLoad: comme ci-dessous-
self.viewControllers![0].title="Deposit"
self.viewControllers![1].title="Withdraw"
self.viewControllers![2].title="Activity"
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
UITabBarController *tb=[[UITabBarController alloc]init];
UIStoryboard *sb=[UIStoryboard storyboardWithName:@"Main" bundle:nil];
UIViewController *vc1=[sb instantiateViewControllerWithIdentifier:@"View1"];
UIViewController *vc2=[sb instantiateViewControllerWithIdentifier:@"View2"];
//To Set Title for UIViewController
[vc1 setTitle:@"View1"];
[vc2 setTitle:@"View2"];
NSArray *vController=[[NSArray alloc]initWithObjects:vc1,vc2,nil];
tb.viewControllers=vController;
self.window.rootViewController=tb;
[self.window makeKeyAndVisible];
return YES;
}