Я пытаюсь создать категорию для UINavigationController, чтобы собрать несколько пользовательских анимаций. Я наткнулся на this question, и это заставило меня начать. Я придумал следующее для нажимной функции:iPhone - UINavigationController - пользовательская анимация с CATransaction
- (void)pushViewControllerMoveInFromBottom:(UIViewController *)viewController {
[CATransaction begin];
CATransition *transition;
transition = [CATransition animation];
transition.type = kCATransitionMoveIn;
transition.subtype = kCATransitionFromBottom;
transition.duration = 0.7;
[CATransaction setValue:(id)kCFBooleanTrue
forKey:kCATransactionDisableActions];
[[[[self.view subviews] objectAtIndex:0] layer] addAnimation:transition forKey:nil];
[self pushViewController:viewController animated:YES];
[CATransaction commit];
}
Я не понять, какой вид/слой осуществляется доступ через вызов подвид. Поэтому, если кто-то может помочь мне понять это, это будет полезно. Кажется, что на экране появился какой-то вид.
Но мой главный вопрос в том, что я пытаюсь создать поп, который «отменит» вышеуказанную функцию. Для большей ясности, скажем, у меня есть два вида, A и B. A - это первый вид, который отображается на экране. Функция выше, будет двигаться в B, не выталкивая A out. Очень похоже на модальное представление. Но функция ниже слайдов A назад в над B, скорее, что скользящий B вверх и оставляя A на месте.
- (void)popViewControllerMoveInFromTop {
[CATransaction begin];
CATransition *transition;
transition = [CATransition animation];
transition.type = kCATransitionMoveIn;
transition.subtype = kCATransitionFromTop;
transition.duration = 0.7;
[CATransaction setValue:(id)kCFBooleanTrue
forKey:kCATransactionDisableActions];
[[[[self.view subviews] objectAtIndex:0] layer] addAnimation:transition forKey:nil];
[self popViewControllerAnimated:YES];
[CATransaction commit];
}
Я не хочу, чтобы использовать модальное представление, и я предпочел бы не использовать пользовательские анимации блоки, чтобы изменить рамку взглядов.