2 votes

Définissez le titre de la barre d'onglets par programme au démarrage pour 5 éléments de la barre d'onglets, dont 4 sont intégrés au contrôleur de navigation et 1 ne l'est pas. Objectif C

Comment définir le titre de la barre d'onglet au démarrage ou AppDelegates . J'ai 5 Tab Bar Item dont 4 sont intégrés dans une Navigation Controller et 1 est sans et juste un tab bar item . Veuillez voir l'image suivante

Pic

Mis à jour sur le VC appelant la méthode

#import "AppDelegate.h"

@interface ProfileChgLang (){

    AppDelegate *appDelegate;
    NSString *sLanguage;
}

- (IBAction)btnChinese:(id)sender {

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults setObject:@"CN" forKey:@"txtLanguage"];

    [(AppDelegate*)[UIApplication sharedApplication].delegate setupTabBar];

    //UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    //==== Is the following correct? ===== 
    UITabBarController * tabBarController = (UITabBarController*)[[[UIApplication sharedApplication] keyWindow] rootViewController];
    [self presentViewController:tabBarController animated:YES completion:nil];
 }
    //====================================

Mise à jour du délégué de l'application

 - (void)setupTabBar {
    //===Should be this 
    UITabBarController * tabBarController = (UITabBarController*)[self.window rootViewController];
    //===Or this 
    UITabBarController * tabBarController = (UITabBarController*)[[[UIApplication sharedApplication] keyWindow] rootViewController];

    if(tabBarController != nil) {
        ((UIViewController*)[tabBarController.viewControllers objectAtIndex:1]).tabBarItem.title = @"Your desired Title";
     }

3voto

Reinier Melian Points 13437

Tout UIViewController ont cette propriété tabBarItem car c'est une extension de UIViewController donc il suffit de récupérer votre viewController et de définir son tabBarItem.title propriété = "votre titre souhaité".

UPDATE

Code Objective-C

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [self setupTabBar];
    // Override point for customization after application launch.
    return YES;
}

- (void)setupTabBar {
    UITabBarController * tabBarController = (UITabBarController*)[self.window rootViewController];
    if(tabBarController != nil) {
        ((UIViewController*)[tabBarController.viewControllers objectAtIndex:3]).tabBarItem.title = @"YourDesiredTitle";
    }
}

Code Swift

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

        //Whatever you have here
        self.setupTabBar()

        return true
    }

func setupTabBar() {

    if let tabBarController = self.window?.rootViewController as? UITabBarController {
       if let navigationsControllers = tabBarController.viewControllers as? [UIViewController] {
   navigationsControllers[3].tabBarItem.title = "YourTitle"
       }
   }
}

UPDATE #2

si vous voulez appeler cette méthode depuis n'importe où dans votre code, vous devez

  1. Importez votre AppDelegate.h dans le fichier .m où vous voulez l'utiliser.
  2. ajouter cette méthode dans votre AppDelegate.h afin de rendre cette méthode publique
  3. appelez cette méthode comme ceci :

Code

   [(AppDelegate*)[UIApplication sharedApplication].delegate setupTabBar];

enter image description here

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X