QMUICustomNavigationBarTransitionDelegate
@protocol QMUICustomNavigationBarTransitionDelegate <NSObject>
与 QMUINavigationController 控制 navigationBar 显隐/动画相关的方法
-
设置每个界面导航栏的显示/隐藏,为了减少对项目的侵入性,默认不开启这个接口的功能,只有当 shouldCustomizeNavigationBarTransitionIfHideable 返回 YES 时才会开启此功能。如果需要全局开启,那么就在 Controller 基类里面返回 YES;如果是老项目并不想全局使用此功能,那么则可以在单独的界面里面开启。
Declaration
Objective-C
- (BOOL)preferredNavigationBarHidden;
Swift
optional func preferredNavigationBarHidden() -> Bool
-
当切换界面时,如果不同界面导航栏的显隐状态不同,可以通过 shouldCustomizeNavigationBarTransitionIfHideable 设置是否需要接管导航栏的显示和隐藏。从而不需要在各自的界面的 viewWillAppear 和 viewWillDisappear 里面去管理导航栏的状态。
See
UINavigationController+NavigationBarTransition.hSee
preferredNavigationBarHiddenDeclaration
Objective-C
- (BOOL)shouldCustomizeNavigationBarTransitionIfHideable;
Swift
optional func shouldCustomizeNavigationBarTransitionIfHideable() -> Bool
-
设置导航栏转场的时候是否需要使用自定义的 push / pop transition 效果。
如果前后两个界面 controller 返回的 key 不一致,那么则说明需要自定义。
不实现这个方法,或者实现了但返回 nil,都视为希望使用默认样式。Warning
四个老接口 shouldCustomNavigationBarTransitionxxx 已经废弃不建议使用,不过还是会支持,建议都是用新接口See
UINavigationController+NavigationBarTransition.hSee
配置表有开关 AutomaticCustomNavigationBarTransitionStyle 支持自动判断样式,无需实现这个方法Declaration
Objective-C
- (nullable NSString *)customNavigationBarTransitionKey;
Swift
optional func customNavigationBarTransitionKey() -> String?
-
自定义navBar效果过程中UINavigationController的containerView的背景色
See
UINavigationController+NavigationBarTransition.hDeclaration
Objective-C
- (nullable UIColor *)containerViewBackgroundColorWhenTransitioning;
Swift
optional func containerViewBackgroundColorWhenTransitioning() -> UIColor?