Как установить заголовок элемента панели вкладок программно в цели c? - PullRequest
35 голосов
/ 19 января 2012

Я хочу установить заголовок для элемента табуляции программно, но это не работает.Мой код ниже:

- (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;
}

Ответы [ 10 ]

61 голосов
/ 25 сентября 2012

Вы можете легко установить все значки UITabBar.Вы можете сделать это по вашему viewWillAppear: методу:

[[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")];

Swift 3.1 Solution

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")
29 голосов
/ 26 сентября 2012

Как я это делаю в реальном контроллере представления (не в делегате приложения):

// 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
8 голосов
/ 19 января 2012

Простой способ сделать это: в методе viewController2 viewDidLoad установите self.title = @"MyTitle";

4 голосов
/ 19 января 2012

Заголовок, отображаемый в данном элементе панели вкладок, определяется соответствующим экземпляром контроллера представления UITabBarItem.Они не изменяемы, хотя ... если вы хотите изменить заголовок (или изображение, или тег), вы должны создать новый элемент и назначить его контроллеру представления.

UITabBarItem *item2 = [[UITabBarItem alloc initWithTitle:@"someTitle" image:someImage tag:0];
viewController2.tabBarItem = item2;
4 голосов
/ 19 января 2012
[view2Controller setTitle:@"ImATitle"];

может быть тем, что вы после

edit: хорошо, я только что проверил это, и оно работает для меня, так что попробуйте

3 голосов
/ 19 января 2012

попробуйте

[(UIViewController *)[tabBarController.viewControllers objectAtIndex:Index] setTitle:@"Title"]; 

или вы также можете установить панель вкладок следующим образом

UITabBarItem *tabItem = [[[tabBarController tabBar] items] objectAtIndex:INDEX];
[tabItem setTitle:@"TITLEe"];
2 голосов
/ 19 января 2012

сначала объявите 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;
}

, и даже вы можете установить изображения вкладок, используя

view2Controller.tabBarItem.image = [UIImage imageNamed:@"misle.png"];
1 голос
/ 10 марта 2015

Если вы вызываете это из встроенного UIViewController, вы можете изменить заголовок родительской панели вкладок:

self.tabBarController.title = @ "My Title.";

0 голосов
/ 18 сентября 2018

В swift вы можете изменить название элемента UITabBarController в viewDidLoad: метод, как показано ниже -

   self.viewControllers![0].title="Deposit"
   self.viewControllers![1].title="Withdraw"
   self.viewControllers![2].title="Activity"
0 голосов
/ 08 июля 2016
- (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;
}
...