У меня есть три контроллера представления, которые устроены как Snapchat. Основной встроен в UINavigationController и находится посередине с контроллером представления слева и одним справа. Переход работает хорошо, анимация влево/вправо. Но в Snapchat, когда вы переключаетесь на контроллер рядом с камерой или наоборот, камера останется видимой (не окрашенной в черный цвет) в пользовательском переходе. С МОЙ, если я помещаю второй контроллер представления в стек, первый контроллер представления, кажется, исчезает до черного цвета, поскольку анимация начинается, когда я хочу, чтобы он оставался полностью видимым. Я предполагаю, что мне нужно что-то изменить в моем пользовательском переходе.
@implementation toTheRight
- (void) perform{
UIViewController *sourceViewController = (UIViewController *)self.sourceViewController;
UIViewController *destinationViewController = (UIViewController *)self.destinationViewController;
CATransition *transition = [CATransition animation];
transition.duration = .5;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transition.type = kCATransitionPush;
transition.subtype = kCATransitionFromRight;
[sourceViewController.navigationController.view.layer addAnimation:transition forKey:kCATransition];
[sourceViewController.navigationController pushViewController:destinationViewController animated:NO];
}