我正在UIStorybord
制作一个tvOS应用。我想根据导航堆栈中之前的UIViewcontroller
来模糊当前的UIViewController
。我正在使用UIVisualEffectView
类。所以我有我的firstViewController,我添加了UIImageView
。在下一个UIViewController
(这个VC将被推到我的FirstViewController之上)我在storyboard中的self.view上添加了UIVisualEffectView
,然后在{{1}的view属性中添加了UIButton
但是我没有任何模糊效果。
我没有为此编写任何代码。我必须为此编写代码吗?我想在故事板中做所有事情,因为在故事板中添加约束更容易,而不是在代码中添加约束。
任何帮助都将受到高度赞赏。感谢
答案 0 :(得分:0)
默认导航过渡将前一个viewController移动到左侧,然后将其从视图堆栈中移除。
您需要使用viewController来实现UINavigationControllerDelegate
协议:
- (id<UIViewControllerAnimatedTransitioning>)navigationController:(UINavigationController *)navigationController animationControllerForOperation:(UINavigationControllerOperation)operation fromViewController:(UIViewController *)fromVC toViewController:(UIViewController *)toVC;
现在,您需要实现实现UIViewControllerAnimatedTransitioning
的自定义动画对象,并在上面提到的UINavigationController
委托方法中返回该类的实例。
为了简化过程,您可以向第二个viewController添加UIVisualEffectView
。您将视图内容放在效果视图中。
在自定义动画制作工具中,您只需要为目标viewController设置动画,并将源视图控制器保持在原位。