【发布时间】:2013-03-24 12:07:00
【问题描述】:
我有一个视图控制器(继承自 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];
}
唯一的缺点是我愿意接受的新后退按钮的外观。
感谢您的回答:)
【问题讨论】:
标签: ios objective-c animation uinavigationcontroller back