0

複数のビュー コントローラーがあり、特定のビュー コントローラーに移行するときに別のカスタム セグエを実行したいと考えています。

さまざまなカスタム セグエのコードを正しく作成し、対応するセグエをそのクラスに設定しました。

私の問題は、 ViewControllerAからViewControllerBに移行するときに、 CustomSegueAを実行することです。ViewControllerBからViewControllerCに移行するときに、CustomSegueBを実行したいのですが、代わりにCustomSegueAを実行します。実際、後続の遷移ごとにCustomSegueAが実行されます。ViewControllerAからViewControllerB 、そして CustomSegueBへのトランジションを変更すると、後続の各トランジションでCustomSegueBが使用されます

助言がありますか?

4

1 に答える 1

0

問題はカスタムセグエコードにありました...私が持っていたアニメーション用

    - (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 に答える