我希望在两个UIViewControllers
之间进行转换,例如推送转换。
当我使用推送转换默认时,我的视图从右向左变换。但我希望我的观点从左到右转换。
请指导我
答案 0 :(得分:0)
这可能会有所帮助。虽然我相信必须有更好的方法。
UIViewController *vc = [[UIViewController alloc] init]; // create the new view controller to "push"
NSArray *viewControllers = self.navigationController.viewControllers;
NSMutableArray *mutableViewControllers = [viewControllers mutableCopy];
NSInteger indexOfSelf = [mutableViewControllers indexOfObject:self];
[mutableViewControllers insertObject:vc atIndex:indexOfSelf];
[self.navigationController setViewControllers:mutableViewControllers];
[self.navigationController popViewControllerAnimated:YES]; // actually, it's a "pop" action
答案 1 :(得分:0)
我采用了解决方案here并对其进行了修改,使其看起来更清晰,并从所需方向推出。虽然它有所需的方向动画,但导航栏中有一些我无法消除的闪烁。
CATransition *transition = [CATransition animation];
transition.duration = 0.4f;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transition.type = kCATransitionPush;
transition.subtype = kCATransitionFromLeft;
transition.delegate = self;
[self.navigationController.view.layer addAnimation:transition forKey:nil];
[self.navigationController pushViewController:yourViewControllerHere animated:NO];
另外请记住,用户非常习惯于从右侧推送下一个视图控制器。在更改标准项目的外观/感觉之前要仔细考虑,因为这会让您的用户感到困惑。