0

Comment déclencher la méthode de navigationController: willShowViewController pour ma mise en œuvre ci-dessous afin que tous les contrôleurs de vue du contrôleur de navigation se conforment au colorWithHexString # faf6f5?Comment déclencher navigationController: méthode willShowViewController déléguée dans AppDelegate

Actuellement, mon FirstViewController sera affiché mais il ne semble pas appeler la méthode déléguée pour changer la couleur de sa barre de navigation (ainsi que pour tous les autres contrôleurs de vue qui sont empilés sur le contrôleur de navigation par la suite). Notez que j'ai déjà ajouté "UINavigationControllerDelegate" à mon fichier d'en-tête de délégué d'application.

//In App Delegate 
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    //Set First View 
    FirstViewController *firstView = [[FirstViewController alloc]init]; 

    // pushes a nav con 
    UINavigationController *tempNavcon = [[UINavigationController alloc]initWithRootViewController:firstView]; 
    self.navcon = tempNavcon; 

    [self.window addSubview:navcon.view]; 

} 

- (void)navigationController:(UINavigationController *)navigationController 
    willShowViewController:(UIViewController *)viewController animated:(BOOL)animated{ 

    navigationController.navigationBar.tintColor = [UIColor colorWithHexString:@"#faf6f5"]; 

} 

Répondre

0

est-il une raison pour laquelle vous essayez de changer la tintColor dans une méthode d'événement plutôt que lorsque l'instance est créée UINavigationBar?

+0

Oh ok juste pour clarifier, en changeant la couleur de teinte est une seule de la personnalisation que je fais que je devais.. changer aussi la couleur du texte dans la barre de navigation et il ne semble pas possible de le faire directement dans une instance UINavigationbar, donc je devais le faire dans une méthode événementielle – Zhen

0

Voici comment vous le faites. (Notez que UIColor n'accepte pas les valeurs hexagonales, vous devez utiliser une valeur RVB, ou consultez this page

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    //Initialize your view controller. 
    FirstViewController * firstView = [[FirstViewController alloc] init]; 

    // Create an instance of a UINavigationController. Its stack contains only firstView. 
    UINavigationController *navController = [[UINavigationController alloc] 
              initWithRootViewController:firstView]; 

    //Here is where you set the color of the navigationBar. See my note above for using RGB. 
    navController.navigationBar.tintColor = [UIColor greenColor]; 

    // You can now release the firstView here, navController will retain it 
    [firstView release]; 

    // Place navigation controller's view in the window hierarchy 
    [[self window] setRootViewController:navController]; 

    [navController release]; 

    [self.window makeKeyAndVisible]; 
    return YES; 
} 
Questions connexes