我发现这段代码可用于良好的过渡:
http://srooltheknife.blogspot.co.uk/2012/03/custom-transition-animation-for-modal.html
问题是它使用“模态”,而我的程序使用 ARC,所以模态在 iOS 6.0 中已被弃用。
只有两行使用模态,所以我将它们从 -
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];
}
- 单击“开始游戏”按钮时,当前视图将被完全相同的视图向左推。
- 在过渡期间,视图会有轻微的淡入淡出/发光。
- 该方法中使用的方向与过渡的方向不同。例如,“kCATransitionFromBottom”实际上是从左侧推送的视图。
- 每次单击按钮时输出:“警告:尝试呈现不在窗口层次结构中的视图!”