0

絵コンテで 4 つのシーンを作成する必要があり、すべてがうまく機能しますが、現在、トランジション カバーが垂直のモーダル スタイルを使用しています。モーダル スタイルが必要ですが、水平方向のカバー トランジションが必要です。

シーンにはナビゲーション バーがないため (必要がないため)、丸い四角形のボタンを使用してシーンからシーンに切り替えます。

チュートリアルを見つけ、新しいクラスを作成して perform メソッドをオーバーライドしました。

perfom メソッドを使用した実装ファイルを次に示します。

#import "JHCustomSegue.h"
#import "QuartzCore/QuartzCore.h"

@implementation JHCustomSegue

- (void) perform {

    UIViewController *sourceViewController = (UIViewController*)[self sourceViewController];
    UIViewController *destinationController = (UIViewController*)[self destinationViewController];

    CATransition* transition = [CATransition animation];
    transition.duration = .25;
    transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
    transition.type = kCATransitionPush; //kCATransitionMoveIn; //, kCATransitionPush, kCATransitionReveal, kCATransitionFade
    transition.subtype = kCATransitionFromRight; //kCATransitionFromLeft, kCATransitionFromRight, kCATransitionFromTop, kCATransitionFromBottom



    [sourceViewController.navigationController.view.layer addAnimation:transition
                                                                forKey:kCATransition];

    [sourceViewController.navigationController pushViewController:destinationController animated:NO];

}


@end 

しかし、トランジションが機能せず、常に最初の画面にとどまり、どのシーンにもチャンスがあります。

例は非常にうまく機能しますが、ナビゲーションバーを使用しているため、私が間違っていることです。

よろしくお願いします。

4

0 に答える 0