9

ho nella mia applicazione solo-iOS5 un navigationControllerDelegate:Evitare UIBarButtonItem fade out/dissolvenza durante pushViewController animazione

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated 
{ 
    UIBarButtonItem *myButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"common-settingsbutton"] style:UIBarButtonItemStylePlain target:nil action:nil]; 
    [viewController.navigationItem setRightBarButtonItem:myButton]; 
} 

Funziona, ma quando si verifica un controller di vista spinta con l'animazione di default (vale a dire utilizzando una "spinta segue ") the rightBarButtonItem fadeout e fadein durante l'animazione.

Come posso evitare questo?


UPDATE

L'unica soluzione ho trovato è:
creare UINavigationBar sfondo con gli stessi UIBarButtonItems disegnati in png (nella stessa posizione, stesso colore) e impostare lo sfondo a base correttamente sui pulsanti di cui ho bisogno. Quindi, naturalmente, aggiungi i tuoi UIBarButtonItems.

risposta

3

L'unica soluzione che ho trovato è: creare lo sfondo UINavigationBar con gli stessi UIBarButtonItems disegnati in png (nella stessa posizione, lo stesso colore) e impostare lo sfondo correttamente in base ai pulsanti di cui ho bisogno. Quindi, naturalmente, aggiungi i tuoi UIBarButtonItems.

0

Creare il pulsante prima di inserire il controller della vista anziché nel metodo del protocollo.

+0

Ho ottenuto lo stesso comportamento, e inoltre avrò bisogno di implementare lo stesso codice in tutto "prepareForSegue" in ogni viewcontroller invece di avere il codice in un solo posto –

0

Secondo la documentazione è possibile disattivare l'animazione per un BarButtonItem

[viewController.navigationItem setRightBarButtonItem:myButton animated:NO]; 

ma questo non sembra funzionare in un progetto storyboard. Il pulsante continua a essere animato.

+1

Sì, ho già provato in questo modo, non ha funzionato –

0
button. adjustsImageWhenHighlighted = NO; 

Quando si fa clic su rightBarButton è evidenziato come Fade In/Fade Out. Per evitare che una proprietà di quel pulsante si aggiusti, ImageWhenHighlighted è impostato su NO.

+0

In generale, le risposte sono molto più utili se includono una spiegazione di cosa è inteso fare il codice e perché questo risolve il problema senza introdurre altri. – Peter

+0

Sentiti libero di incollare questo nella risposta. Grazie ! – Peter

Problemi correlati