0

適切な遷移に使用するコードのスニペットを見つけました。

http://srooltheknife.blogspot.co.uk/2012/03/custom-transition-animation-for-modal.html

問題は、それが「モーダル」を使用し、私のプログラムが ARC を使用しているため、iOS 6.0 でモーダルが非推奨になったことです。

モーダルを使用するのは2行だけなので、次のように変更しました-

TransitionController.m:
[self dismissModalViewControllerAnimated:NO];
to:
[self dismissViewControllerAnimated:NO completion:Nil];

[self presentModalViewController:modalViewController animated:NO];
to:
[self presentViewController:modalViewController animated:NO completion:nil];

そして私はそれを実行します:

FirstPage.m:
@implementation FirstPage
{
    TransitionController *tran;
}

- (IBAction)StartGame:(id)sender
{

    if (! self.mainPage)
    self.mainPage = [[MainGameDisplay alloc] initWithNibName:nil bundle:nil];

    [tran presentModalViewController:self.mainPage withPushDirection:kCATransitionFromBottom];
}

StartGame はボタンです。プログラムはエラーなしで完全に実行されますが、ボタンをクリックしても何も起こりません。


アップデート:

FirstPage.h:
#import <UIKit/UIKit.h>
#import "MainGameDisplay.h"
#import <QuartzCore/QuartzCore.h>
#import "TransitionController.h"
@interface ViewController : Engine
{ }
- (IBAction)StartGame:(id)sender; //Action connection ID.
@property(nonatomic, readwrite) MainGameDisplay *mainPage;

FirstPage.m:
@implementation ViewController
{
    TransitionController *tran;
}
- (IBAction)StartGame:(id)sender {
    if (! self.mainPage)
    self.mainPage = [[MainGameDisplay alloc] initWithNibName:nil bundle:nil];
    tran = [[TransitionController alloc] initWithNibName:Nil bundle:Nil];
    [tran presentModalViewController: self.mainPage withPushDirection:kCATransitionFromBottom];
}
  • 「StartGame」ボタンをクリックすると、現在のビューがまったく同じビューによって左に押し出されます。
  • 移行中、ビューのわずかなフェード/グローがあります。
  • メソッドで使用される方向は、遷移の方向とは異なります。たとえば、「kCATransitionFromBottom」は、実際には左からプッシュされるビューになります。
  • ボタンをクリックするたびに出力: 「警告: ビューがウィンドウ階層にない場合に表示しようとしています!」
4

0 に答える 0