4

UINavigationController でカスタム トランジションを作成しました。使用したコードは次のとおりです。

SecondView *newView = [[SecondView alloc] initWithNibName:nil bundle:nil];
[UIView beginAnimtaions:nil context:nil];
[UIView setAnimationDuration:1.0];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlDown];
[self.navigationcontroller pushViewController:newView animated:NO];
[UIView commitAntimations];
[newView release];

ただ、その遷移アニメーションはForwardにしか適用されないのですが、Backに適用できますか?

ありがとう

4

1 に答える 1

11

もちろん、戻るボタンのカスタムUIBarButtonItemを定義し、コントローラーをプッシュするのと同様のことを行うカスタムメソッドにリンクするだけですが、プッシュする代わりに、ビューコントローラーをポップする必要があります。

つまり、最初に戻るボタンを作成します(initまたはviewDidLoadメソッドで)

UIBarButtonItem *backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:self action:@selector(back)];
self.navigationItem.leftBarButtonItem = backBarButtonItem;
[backBarButtonItem release];

次に、backメソッドで、カスタムアニメーションを実行できます

-(IBAction)back {

    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration: 1.0];

    [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.navigationController.view cache:YES];

    [[self navigationController] popViewControllerAnimated:NO];

    [UIView commitAnimations];


}
于 2011-07-27T22:08:11.660 に答える