从普通导航栏到透明导航栏的过渡管理

4
我需要管理嵌入导航控制器中的两个视图控制器之间的转换,该控制器使用标准、浅色、模糊层。这个应用程序部分的所有视图控制器都与这个模糊层非常匹配,除了一个,我希望它能淡出成为完全透明的条形,并在弹出此视图控制器时恢复正常。
期望的行为:

enter image description here

我已经研究了很长时间,但是我无法弄清如何完成它。有人能帮我吗?我看了this question,但我不太明白如何实现它。

谢谢!

1个回答

7

你有研究过UIViewControllerTransitionCoordinator吗?

每个UIViewController都有一个transitionCoordinator属性,您可以访问该属性以执行与转换相关的任务。

从进行转换的UIViewControllerviewWillAppear/viewWillDisappear方法中调用transitionCoordinatoranimateAlongsideTransition方法:

id <UIViewControllerTransitionCoordinator> coordinator = [self transitionCoordinator];

[coordinator animateAlongsideTransition:^(id<UIViewControllerTransitionCoordinatorContext> context) {
    // animate the changes in the navigation bar here
} completion:nil];

我明白了,那么我应该把这段代码放在“opaque”视图控制器和透明视图控制器中吗?哪种方法最合适? - Erik
我的意图是使UINavigationBar(或UINavigationItem)淡出,以便在VC1上,它将完全正常和轻盈,模糊,然后 - 在segue时,将其淡出以变得完全透明。VC本身保持不变。 - Erik
тюе viewWillAppear тњї viewWillDisappear СИГУдєуЏќСИцуДЇТЃЁтєхсђѓ - pNre
动画被添加到同一组中,请查看我答案中的文档链接。 - pNre
1
是的,同意 - 如果我无法解决它,我会发布一个新问题。非常感谢您的帮助! - Erik
显示剩余11条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接