Come impostare il colore della barra di navigazione del menu Configura della barra delle schede

StackOverflow https://stackoverflow.com/questions/1404197

Domanda

rimosso link ImageShack morto

Come puoi vedere, la vista che devo cambiare è la vista fornita per personalizzare l'ordine della barra delle schede. Voglio cambiare il colore della barra di navigazione (mostrando "Konfigurieren" che significa "Configura"), ho già scoperto come cambiare il colore del "Altro" Controller di navigazione, ma non questo. Qualcuno può aiutarmi con quello?

È stato utile?

Soluzione

Usa int AppDelegate

tabBarController.moreNavigationController.navigationBar.tintColor = [UIColor blackColor];

Altri suggerimenti

Penso che ciò che stai cercando sia questo (da fare quando crei il controller di navigazione, in genere nel delegato dell'app):

UINavigationController *navigationController;
...
navigationController.navigationBar.tintColor = [UIColor blackColor];

Funzionerà sicuramente! :-)

self.navigationController.navigationBar.tintColor  = [UIColor blackColor];

Può essere più semplice (utilizzare nella barra dei delegati):

- (void)tabBarController:(UITabBarController *)tabBarController willBeginCustomizingViewControllers:(NSArray *)viewControllers {
id modalViewCtrl = [[[tabBarController view] subviews] objectAtIndex:1];  
if([modalViewCtrl isKindOfClass:NSClassFromString(@"UITabBarCustomizeView")] == YES)
    ((UINavigationBar*)[[modalViewCtrl subviews] objectAtIndex:0]).tintColor = [UIColor redColor];
}

C'è un modo semplice per cambiare tutti gli stili della barra di navigazione invece di cambiarli separatamente.

[[UINavigationBar appearance] setBarStyle:UIBarStyleBlack];

Basta impostare questo codice in una delle viste iniziali. Con questo, il tuo controller di navigazione più e il controller di navigazione di configurazione (che appare dopo aver fatto clic su " Modifica " in più controller di navigazione) assumono uno stile diverso.

In questo modo puoi cambiarne il colore con uno diverso o cambiare l'immagine di sfondo.

Spero che questo aiuti.

Sono stato in grado di cambiare il colore di Configure NavBar in questo modo:

  1. Crea una nuova classe che eredita da UITabBarController.
  2. Implementa questo metodo:

    -(void)beginCustomizingTabBar:(id)sender
    {
        [super beginCustomizingTabBar:sender];
    
        // Get the new view inserted by the method called above
        id modalViewCtrl = [[[self view] subviews] objectAtIndex:1];
    
        if([modalViewCtrl isKindOfClass:NSClassFromString(@"UITabBarCustomizeView")] == YES)
        {
            UINavigationBar* navBar = [[modalViewCtrl subviews] objectAtIndex:0];
    
            [navBar setBarStyle:UIBarStyleBlackTranslucent];
            [navBar setTranslucent:YES];
        }
    }
    

Sulla base della risposta fornita dall'utente486217, questo potrebbe essere ancora più codificato in modo difensivo:

id modalViewCtrl = [controller.view.subviews objectAtIndex:1];  
if([modalViewCtrl isKindOfClass:NSClassFromStrin(@"UITabBarCustomizeView")] == YES) {
    id navigationBar = [[modalViewCtrl subviews] objectAtIndex:0];
    if ([navigationBar isKindOfClass:[UINavigationBar class]]) {
        ((UINavigationBar*)navigationBar).tintColor = [UIColor redColor];
    }
}}

Se stai cercando i colori standard (Grigio, Nero, Bianco), puoi impostare questi valori in xCode 5. Seleziona l'intero controller di visualizzazione e seleziona la finestra di ispezione degli attributi. Sotto gli attributi troverai un menu a discesa accanto a " Barra superiore " ;. Lì puoi selezionare varie impostazioni di colore e opacità per il controller della barra di navigazione.

Di seguito sono riportati alcuni screenshot. Spero che questo aiuti!

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top