Вот обсуждение блоков из моей книги:
http://www.apeth.com/iOSBook/ch03.html#_blocks
Там есть пример, но вот пример, который ближе к тому, о чем вы спрашиваете:
[self transitionFromViewController:fromvc
toViewController:tovc
duration:0.4
options:UIViewAnimationOptionTransitionFlipFromLeft
animations:nil
completion:^(BOOL done){
[tovc didMoveToParentViewController:self];
[fromvc removeFromParentViewController];
}];
Блок завершения принимает один параметр, BOOL, называемый «done», но он не используется его кодом.Идея состоит в том, что анимация выполняется, а затем запускается код в блоке завершения.
Очень важно чувствовать себя комфортно с блоками, потому что они - путь будущего.Например, анимация вида в iOS 4 использует их, как описано в разделе «Анимация вида на основе блоков» моей книги (сначала прочитайте о старом, а затем о новом способе iOS 4):
http://www.apeth.com/iOSBook/ch17.html#_view_animation
В iOS 5 блоки еще важнее;появляется все больше и больше ситуаций, в которых они не являются обязательными.
Кроме того, блоки - это способ использовать GCD (грандиозная центральная диспетчеризация), который является бесспорным лучшим способом сделать многопоточность.