我有一个视图控制器(继承自UIViewController
),它具有用于呈现数据的自定义逻辑。它可以初始化一个新的视图控制器(相同类型)并使用
[self.navigationController pushViewController:next animated:NO]
(下一个是新实例化的控制器)显示它,创建“视图堆栈”的体验,使用导航控制器默认后退按钮向上导航堆栈.
现在,在调用之前,pushViewController:animated:
我可以通过调用自定义过渡动画[self.navigationController.view.layer addAnimation:animation forKey:nil]
。这对于视图的“向下堆栈”非常有效。
但是由于在堆栈上导航是使用默认后退按钮的默认方式完成的,因此使用的过渡是默认的向左滑动动画,它与我的自定义动画不匹配。
如何自定义此过渡动画?
编辑:
我接受了这里给出的想法并想出了:
UIBarButtonItem *back = [[UIBackButtonItem alloc] initWithTitle:@"\U000025C0\U0000FE0E" style:UIBarButtonItemStylePlain target:self action:@selector(back:)];
[self.navigationItem setLeftBarButtonItem:back]
和过渡:
- (IBAction)back:(id)sender {
CATransiotion *animation = [CATransition animation];
animation.duration = 0.3f;
amimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];
animation.type = kCATransitionMoveIn;
[self.navigationController.view.layer addAnimation:animation forKey:nil];
[self.navigationController popViewControllerAnimated:NO];
}
唯一的缺点是我愿意接受的新后退按钮的出现。
感谢您的回答:)