如何使用自定义 UIViewController 转换来实现这一点?
Posted
技术标签:
【中文标题】如何使用自定义 UIViewController 转换来实现这一点?【英文标题】:How can I use custom UIViewController transitions to achieve this? 【发布时间】:2014-06-25 18:15:24 【问题描述】:所以我的应用程序中有一个流程,其中所有视图控制器都具有相同的渐变背景(使用 UIImageView)。
我以模态方式向它们中的每一个呈现交叉溶解过渡,而不是使用导航控制器,因为我不想要水平推送/弹出过渡。有一个更好的方法吗?也许使用导航控制器并禁用推送/弹出动画并且只是将 UI 元素淡入/推送到视图中?
我希望它看起来背景不会在工作流程中发生变化,但每个视图控制器的 ui 元素/内容确实会发生变化。
【问题讨论】:
【参考方案1】:如果动画相当容易做,您可以提供自定义推送/弹出动画。:
[UIView animateWithDuration:0.75
animations:^
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[self.navigationController pushViewController:nextView animated:NO];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.navigationController.view cache:NO];
];
[UIView animateWithDuration:0.75
animations:^
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.navigationController.view cache:NO];
];
[self.navigationController popViewControllerAnimated:NO];
Source.
如果动画不是那么简单,如果您不需要导航栏,以模态方式呈现您的视图控制器是非常好的,但您必须提供自己的 popToViewController:animated:
等效项(因为我不需要知道任何方法可以解除多个视图控制器)。
【讨论】:
以上是关于如何使用自定义 UIViewController 转换来实现这一点?的主要内容,如果未能解决你的问题,请参考以下文章
如何在通用 UIViewController 之后设置自定义 UIViewController?
如何判断自定义 UITableViewCell Xib 在哪个 UIViewController 上?
可以使用自定义 UIViewController 但没有自定义 UIView 类来实现手势识别吗?
如何将自定义单元格连接到 UIViewController?