Итак, я хотел изучить анимацию перехода с блоками. Поэтому я пошел к документации по Apple и взял пример анимации, используя старый метод (без блоков) . Я взял фрагмент кода (небольшая модификация) и проверил это. Отлично работает
[UIView setAnimationDelegate:nil];
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:kTransitionDuration];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight
forView:self.view
cache:YES];
if ([self.instructionsView superview]) {
[self.instructionsView removeFromSuperview];
[self.view addSubview:contentView];
} else {
[self.contentView removeFromSuperview];
[self.view addSubview:instructionsView];
}
[UIView commitAnimations];
// adjust our done/info buttons accordingly
if ([instructionsView superview]) {
self.navigationItem.rightBarButtonItem = doneButton;
} else {
self.navigationItem.rightBarButtonItem = flipButton;
}
Теперь приведенный ниже код является моей попыткой преобразовать код сверху в код с блоками
[UIView transitionWithView:self.view duration:kTransitionDuration options:UIViewAnimationTransitionFlipFromRight animations:^{
if ([self.instructionsView superview]) {
[self.instructionsView removeFromSuperview];
[self.view addSubview:contentView];
} else {
[self.contentView removeFromSuperview];
[self.view addSubview:instructionsView];
}
} completion:^(BOOL finished){
if ([instructionsView superview]) {
self.navigationItem.rightBarButtonItem = doneButton;
} else {
self.navigationItem.rightBarButtonItem = flipButton;
}
}];
Из того, что я могу понять, должен работать приведенный ниже код. Я тестирую это на iOS 4.2, которая поддерживает блоки. Однако, похоже, это не оживляет, и я не понимаю, почему это так. Это меняет взгляды, просто не оживляет. Пожалуйста, помогите.