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

Eri*_*rik 3 objective-c uinavigationbar uinavigationcontroller uinavigationitem ios

我需要管理嵌入在NavigationController中的两个ViewController之间的转换,该控件使用标准的浅色模糊层.应用程序的这一部分中的所有ViewControllers看起来都很好用这个模糊的图层除了一个,而我希望它淡出成为一个完全透明的条,并在我弹出这个ViewController时恢复正常.

期望的行为:

在此输入图像描述

我已经研究了很长一段时间,但我无法弄清楚如何实现它.任何人都可以帮助我吗?我调查了这个问题但我不太明白如何实现它.

谢谢!

pNr*_*Nre 7

你看过了UIViewControllerTransitionCoordinator吗?

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

从执行转换的viewWillAppear/ viewWillDisappear方法UIViewController调用animateAlongsideTransition方法transitionCoordinator:

id <UIViewControllerTransitionCoordinator> coordinator = [self transitionCoordinator];

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