5

non ero fortunati con ricerca di questo, ecco che andiamo;)popViewController/viewWillAppear non animato in iOS 5

Ho un UIViewController con un costume UINavigationBar che spinge un altro UIViewController come visualizzazione secondaria.

Tutto funziona correttamente, tranne quando faccio clic sul pulsante Indietro nella sottoview. La vista delle anteprime (prima) appare correttamente, ma non animata. L'animazione di UINavigationBar è corretta, solo le visualizzazioni cambiano immediatamente.

La funzione - (void)viewWillAppear:(BOOL)animated del primo UIViewController viene chiamata con NO per animated. Ciò accade solo quando eseguo il test con iOS 5, non con iOS 4.

Qualcuno sa come risolvere questo problema?

Grazie per il vostro aiuto! Hannes

UPDATE 1

ho appena rimosso tutto il codice personalizzato e l'utilizzo dell'apparecchio pianura UINavigationBar (quindi nessuna impostazione in più) ed ancora non funziona con iOS 5. Questo è il mio codice che utilizzo nel prima ViewController per spingere il secondo ViewController:

[self.navigationController pushViewController:secondViewController animated:YES];

Come ho già detto - quando si fa clic sul pulsante indietro nella barra di navigazione sulla seconda vista la prima vista appare immediatamente senza animazione.

Qualsiasi aiuto sarebbe apprezzato! Grazie!

UPDATE 2

Mi sento come se sto avvicinando alla questione, ma ancora nessuna soluzione:

Ho appena aggiunto una consuetudine UINavigationController dove mi basta chiamare [super popViewControllerAnimated:animated]. Questo get viene chiamato correttamente (animato è SÌ) ma il viewWillAppear del primo UIViewController ottiene NO come valore per l'animazione ...

risposta

6

stavo avendo un problema simile oggi dove la UIViewController stava diventando NO in viewWillAppear, se non con lo standard UINavigationBar e UINavigationController.

Si è rivelato essere dovuto a chiamare manualmente viewWillAppear:YES da qualche parte non avrebbe dovuto essere. This item suggerisce che può anche essere causato chiamando il metodo sbagliato super da qualche parte (ad es.[super viewWillAppear:animated] anziché [super viewDidAppear:animated] all'interno di viewDidAppear).

Come per l'utilizzo di un personalizzato UINavigationBar, mi sono imbattuto in questo link oggi che può aiutare il vostro caso: http://sloshire1.posterous.com/simple-fix-for-viewwillappear-in-ios5

+2

oh mio dio, grazie sooomuch !! stavo impazzendo con questo! ho appena scoperto che c'era un '[super viewWillAppear] nel' viewDidAppear' del mio custom 'UITabBarController'. Grazie ancora! – Hannes

+0

@Hannes grazie funziona per me @Hannes stai usando 'Rumex CustomTabbar (RXCustom Tabbar)' Ho appena nascosto il '[super viewWillAppear] nella viewDidAppear del mio UITabBarController personalizzato. è questo crea qualche problema? qual è stato il problema con questo? –

+0

@Hannes sto aprendo il 'presente modal viewcontroller' in quel momento sto ricevendo lo stesso problema. hai qualche idea? –

0

Apple ha implementato modi ufficiali per creare barre di navigazione personalizzate in iOS 5. Sfortunatamente, hanno anche rotto la maggior parte del modi non ufficiali di farlo in iOS 4. iOS 5 non chiamerà più drawRect per te. È necessario disporre di due modi per farlo, uno per iOS 5 e versioni successive, utilizzando le nuove chiamate e uno per iOS 4 e precedenti, utilizzando le chiamate precedenti. Consulta la documentazione per le barre di navigazione personalizzate in iOS 5 per maggiori informazioni.

+0

Hi Owen, grazie di per entrare in questo. Ho sottoclassato 'UINavigationBar' e l'ho collegato nel file .xib per ottenere un'intestazione personalizzata - funziona per iOS 4 e 5. Tuttavia ho appena rimosso la' UINavigationBar personalizzata 'e solo la barra regolare e lo stesso effetto, le viste animano correttamente quando si visualizza la sottoview ma si cambia immediatamente quando si fa clic sul pulsante Indietro. – Hannes

0

Hai provato a rimuovere tutto il codice personalizzato e andare con la barra di navigazione nativa? Il comportamento rimane lo stesso? In questo modo puoi controllare se la tua barra personalizzata crea problemi con la transizione.

+0

Grazie, l'ho appena fatto ma ancora la prima vista appare senza animazione ... Ho aggiornato la mia domanda. – Hannes