Ios 将动画从一个视图更改为另一个视图

Ios 将动画从一个视图更改为另一个视图,ios,Ios,我有一个带有4个选项卡的选项卡栏应用程序,还有一个链接到其中的导航栏。在导航栏的选项卡上,我有一个按钮,可以将您带到新页面。我还有一个可以让你回到标签页,但我有一个问题。当返回到选项卡页面时,动画将以扭曲的方式进行。我用故事板做了这些,所以没有编码。我环顾四周,想把这句话写进代码中: - (void) pushController: (UIViewController*) controller withTransition: (UIViewAnimationTransition) tr

我有一个带有4个选项卡的选项卡栏应用程序,还有一个链接到其中的导航栏。在导航栏的选项卡上,我有一个按钮,可以将您带到新页面。我还有一个可以让你回到标签页,但我有一个问题。当返回到选项卡页面时,动画将以扭曲的方式进行。我用故事板做了这些,所以没有编码。我环顾四周,想把这句话写进代码中:

- (void) pushController: (UIViewController*) controller
     withTransition: (UIViewAnimationTransition) transition
{
[UIView beginAnimations:nil context:NULL];
[self pushViewController:controller animated:NO];
[UIView setAnimationDuration:.5];
[UIView setAnimationBeginsFromCurrentState:YES];        
[UIView setAnimationTransition:transition forView:self.view cache:YES];
[UIView commitAnimations];
}
但是我不知道如何以及在哪里放它。

看看这个。您的执行代码如下所示:

- (void)perform {
    [UIView beginAnimations:nil context:NULL];
    [self.sourceViewController.navigationController pushViewController:self.destinationViewController animated:NO];
    [UIView setAnimationDuration:.5];
    [UIView setAnimationBeginsFromCurrentState:YES];        
    [UIView setAnimationTransition:transition forView:self.view cache:YES];
    [UIView commitAnimations];
}
然后在故事板中,将segue的类型设置为Custom,然后输入自定义segue类的名称