Ecco la discussione di isolati dal mio libro:
http://www.apeth.com/iOSBook/ch03.html#_blocks
C'è un esempio lì, ma ecco un esempio che è più vicino al genere di cosa stai chiedendo:
[self transitionFromViewController:fromvc
toViewController:tovc
duration:0.4
options:UIViewAnimationOptionTransitionFlipFromLeft
animations:nil
completion:^(BOOL done){
[tovc didMoveToParentViewController:self];
[fromvc removeFromParentViewController];
}];
Il blocco di completamento accetta un parametro, un BOOL chiamato "done", ma questo non viene utilizzato dal suo codice. L'idea è che l'animazione viene eseguita e quindi viene eseguito il codice nel blocco di completamento.
È molto importante essere a proprio agio con i blocchi perché sono la via del futuro. Ad esempio, vista l'animazione in iOS 4 li usa, come spiegato nella sezione "Block Based View animazione" del mio libro (leggi prima la vecchia maniera, quindi leggere sul nuovo iOS 4 modo):
http://www.apeth.com/iOSBook/ch17.html#_view_animation
In iOS 5 blocchi sono ancora più importanti; ci sono sempre più situazioni in cui non sono opzionali.
Anche i blocchi sono il modo di utilizzare GCD (grand central dispatch), che è di gran lunga il modo migliore per fare multi-threading.
Grazie matt, sembra un buon libro che hai scritto, qualche piano per una versione di iOS 5 ?! –
@Eddie: Ho iniziato la conversione di tutti gli esempi scaricabili per iOS 5: https://github.com/mattneub/Programming-iOS-4-Book-Examples/tree/master/convertedToIOS5 Maggiori informazioni a seguire ... – matt