0

我有多个视图控制器,当我转换到某些视图控制器时,我想执行不同的自定义 segue。

我已经为不同的自定义 segues 正确地制作了代码,并将相应的 segues 设置为该类。

我的问题是,当我从ViewControllerA转换到ViewControllerB时,我希望它执行CustomSegueA并且确实如此。当我从ViewControllerB转换到ViewControllerC时,我希望它执行CustomSegueB但它执行的是CustomSegueA。事实上,每个后续转换都会执行CustomSegueA。如果我将转换从ViewControllerA更改为ViewControllerBCustomSegueB则每个后续转换都将使用CustomSegueB

有什么建议么?

4

1 回答 1

0

问题出在自定义 segue 代码中……对于我拥有的动画

    - (void) perform {

UIViewController *sourceVC = (UIViewController *) self.sourceViewController;
UIViewController *destinationVC = (UIViewController *) self.destinationViewController;

[UIView transitionWithView:sourceVC.view duration:5.0
                   options:UIViewAnimationOptionTransitionCrossDissolve
                animations:^{
                    [sourceVC.navigationController pushViewController:destinationVC animated:NO];
                }
                completion:NULL];

}

在里面

    [UIView transitionWithView:sourceVC.view duration:5.0

我把它改成

    [UIView transitionWithView:sourceVC.navigationController.view duration:5.0

不知道为什么会有区别,我能够弄清楚的唯一原因是查看了我在工作时拥有的一些旧项目

于 2012-06-14T00:10:55.733 回答