Пользовательский переход раскадровки для всплывающего просмотра?

У меня есть настройка UINavigationController в моей раскадровке, и я создал собственный класс segue, который вы можете видеть ниже, который красиво исчезает между моими представлениями (а не стандартным толчком болота).

Однако, когда я нажимаю эту кнопку возврата, которую дал мне мой навигационный контроллер, я получаю анимацию нажатия, которая мне не нужна, я хочу использовать это затухание! Я также не хочу, чтобы переходы в моей раскадровке шли в обе стороны, потому что это только становится беспорядочным.

Пользовательский переход затухания:

-(void)perform
{
    __block UIViewController *sourceViewController = (UIViewController*)[self sourceViewController];
    __block UIViewController *destinationController = (UIViewController*)[self destinationViewController];

    [UIView transitionWithView:sourceViewController.navigationController.view duration:1.0 options:UIViewAnimationOptionTransitionCrossDissolve
                    animations:^
                    {
                        [sourceViewController.navigationController pushViewController:destinationController animated:NO];
                    }
                    completion:^(BOOL finished)
                    {
                        NSLog(@"Transition Completed");
                    }];
}

Редактировать

Возможно, мне следует упростить. Как я могу сделать переход между двумя контроллерами представления в UINavigationController, который выталкивает и выталкивает представления вместо стандартной лево-правой анимации сайдинга?


person Josh Kahane    schedule 30.08.2012    source источник
comment
Ответы на вопрос: stackoverflow.com/questions/4869787/ кажутся чтобы указать, что вы можете настроить «push», определив свою собственную функцию pushController (и, следовательно, переопределив значение по умолчанию) в вашем UINavigationController - стоит попробовать? (или вы уже пробовали что-то подобное?)   -  person YDL    schedule 30.08.2012
comment
Не удалось заставить его работать.   -  person Josh Kahane    schedule 30.08.2012


Ответы (1)


Если вы разрабатываете для iOS 7, вы можете использовать UINavigationControllerDelegate и новый контроллер представления, переходящий api.

Вот руководство: http://www.captechconsulting.com/blog/tyler-tillage/ios-7-tutorial-series-custom-navigation-transitions-more

person eunoia    schedule 07.11.2013