管理从普通 NavigationBar 到透明 NavigationBar 的转换

Managing a transition from a normal NavigationBar to a transparent one

我需要管理嵌入在使用标准、浅色、模糊层的 NavigationController 中的两个 ViewController 之间的过渡。应用程序这部分中的所有 ViewControllers 看起来都非常适合这个模糊层,除了一个,而我希望它淡出成为一个完全透明的条,并在我弹出这个 [=22] 时恢复正常=].

期望的行为:

我已经研究了很长时间,但我不知道如何完成它。任何人都可以帮我吗?我研究过 this question 但我不太明白如何实施它。

谢谢!

你调查过 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];