C'è un modo per sapere quando viene avviato il licenziamentoModalViewControllerAnimate e quando viene completato (come l'idioma per viewWillAppear e viewDidAppear)? A differenza di altre animazioni, questo non sembra avere un delegato che ti dice.Come sapere quando si disabilitaModalViewControllerAnimated viene avviato e anche quando viene eseguito?
risposta
Sì, e più facile di quanto si pensi.
Quando si chiama respintoModalViewControllerAnimated: la vista sottostante (quella che sta per apparire) riceverà un messaggio viewWillAppear e un messaggio viewDidAppear.
Avvertenza: assicurarsi che i controller della vista siano collegati correttamente o che questi messaggi vengano persi.
Ho paura che viewWillAppear e viewDidAppear non funzionano sempre. per l'iPhone che fanno, su iPad no. se l'UIViewController presentato non è presentato a schermo intero (se è presentato come foglio di modulo per esempio) la vista genitore non riceverà le funzioni del ciclo di vita viewWillAppear o viewDidAppear. sfortunatamente l'unico modo che ho trovato è di farmi chiamare il mio messaggio delegato quando viene chiamato ilmodalViewControllerAnimated (ether per riferimento o con notifica)
È possibile utilizzare i metodi di visualizzazione dell'aspetto. E se hai bisogno che qualcosa accada al termine dell'animazione, puoi usare [object performSelector:@selector(selector) withObject:anotherObject afterDelay:0]
. Non so esattamente perché, ma l'azione verrà pianificata nel ciclo di esecuzione corrente, ma al termine dell'animazione.
A partire da iOS 5, utilizzare -dismissViewControllerAnimated: completion: e utilizzare il blocco di completamento per eseguire operazioni dopo il completamento dell'animazione. –
- 1. Come faccio a sapere quando viene eseguito l'ultimo async?
- 2. Quando viene eseguito esattamente `componentDidMount`?
- 3. Quando viene eseguito il garbage collector .net?
- 4. Nascondere Internet Explorer quando WatiN viene eseguito
- 5. Quando e come viene eseguito Asynchronous Google Analytics?
- 6. non viene stampato correttamente quando viene eseguito in Makefile
- 7. L'evento Magento viene sempre inviato quando l'ordine viene eseguito correttamente?
- 8. Quando viene eseguito .Net su UNIX?
- 9. Come si rileva quando l'output viene reindirizzato?
- 10. angularjs - HTTPpromise non viene eseguito quando viene restituito JSONP
- 11. ffmpeg si blocca quando viene eseguito in background
- 12. Garbage collector CMS: quando viene eseguito?
- 13. Perché ReflectionOnlyAssemblyResolve non viene eseguito quando si prova a Assembly.ReflectionOnlyLoad?
- 14. MS Excel si blocca quando viene eseguito il codice vba
- 15. Cambia nome processo quando viene avviato come file batch
- 16. Cosa viene eseguito in PowerShell quando si digita "alias"?
- 17. Quando viene creato PropertyChangedEventManager e quando viene allegato?
- 18. dove viene eseguito l'output quando viene eseguito come processo in background?
- 19. Errore HTTPError Messaggio che non viene visualizzato quando webapi viene eseguito su Server o eseguito localmente
- 20. Come faccio a sapere che cosa javascript viene eseguito quando faccio clic su un elemento?
- 21. Come sapere quando una pagina web viene caricata quando si utilizza QtWebKit?
- 22. Rileva momento quando newline viene avviato in UITextView
- 23. anche quando viene avviato emacsclient in un terminale, il sistema di finestre è diverso da zero
- 24. Quando viene copiato un vettore, quando viene passato un riferimento?
- 25. Ember-Data come sapere quando viene prelevata un'entità
- 26. come sapere quando il testo viene incollato in UITextView
- 27. Quando viene chiamato CanExecute?
- 28. View.onDraw() --- quando viene chiamato?
- 29. Come sapere in quale ambiente viene eseguito il codice?
- 30. Quando viene eseguito il Garbage Collector quando si chiama Haskell da C?
Grazie, la firma del mio delegato era sbagliata, quindi ho pensato che non fosse stato chiamato quando il respingimento è stato eseguito. – Boon
Che aspetto ha questa firma delegata? – AlvinfromDiaspar
Ho entrambi viewDidAppear e viewDidAppear implementati. ma quando viene chiamato il modalviewcontroll (come stile a curvatura parziale), questi delegati non sono chiamati. qualche idea? – AlvinfromDiaspar