Skip to content

Commit

Permalink
fix
Browse files Browse the repository at this point in the history
属性命名更规范
  • Loading branch information
weloy committed Jan 30, 2024
1 parent 5bb5e1c commit 637cc01
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 9 deletions.
9 changes: 5 additions & 4 deletions HBDNavigationBar/Classes/HBDNavigationController.m
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ BOOL shouldShowFake(UIViewController *vc, UIViewController *from, UIViewControll
return YES;
}

if (from.hbd_isBarRealHiddenHasAssociatedObject && to.hbd_isBarRealHiddenHasAssociatedObject && from.hbd_barRealHidden != to.hbd_barRealHidden) {
if (from.hbd_isBarRealHiddenHasAssociatedObject && to.hbd_isBarRealHiddenHasAssociatedObject && from.hbd_prefersBarRealHidden != to.hbd_prefersBarRealHidden) {
return YES;
}

Expand Down Expand Up @@ -185,11 +185,12 @@ - (void)handleNavigationTransition:(UIScreenEdgePanGestureRecognizer *)pan {
}
}

// push pop时都会调用该方法展示新的页面;该方法在vc的viewWillAppear之后调用
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
if (viewController.hbd_isBarRealHiddenHasAssociatedObject) { // 已经设置了hbd_barRealHidden属性
// 如果当前nav展示状态跟将要展示的viewController设置不同 重新设置下
if (self.nav.isNavigationBarHidden != viewController.hbd_barRealHidden) {
[self.nav setNavigationBarHidden:viewController.hbd_barRealHidden animated:animated];
if (self.nav.isNavigationBarHidden != viewController.hbd_prefersBarRealHidden) {
[self.nav setNavigationBarHidden:viewController.hbd_prefersBarRealHidden animated:animated];
}
} else { // 没有设置过hbd_barRealHidden属性的默认不隐藏导航栏。
[self.nav setNavigationBarHidden:NO animated:animated];
Expand Down Expand Up @@ -448,7 +449,7 @@ - (void)viewWillLayoutSubviews {
// - (void)setNavigationBarHidden:(BOOL)navigationBarHidden方法最终也会调用下面的方法,所以不用单独处理。
- (void)setNavigationBarHidden:(BOOL)hidden animated:(BOOL)animated {
if (!self.poppingViewController) { // 不是在3过程中 topViewController是新的页面 这时如果调用隐藏导航栏方法,设置下hbd_barRealHidden。
self.topViewController.hbd_barRealHidden = hidden;
self.topViewController.hbd_prefersBarRealHidden = hidden;
}
[super setNavigationBarHidden:hidden animated:animated];
}
Expand Down
5 changes: 4 additions & 1 deletion HBDNavigationBar/Classes/UIViewController+HBD.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,10 @@
@property(nonatomic, assign) IBInspectable BOOL hbd_clickBackEnabled;
@property(nonatomic, assign) IBInspectable BOOL hbd_splitNavigationBarTransition;

@property(nonatomic, assign) IBInspectable BOOL hbd_barRealHidden; // 导航栏真实隐藏 默认NO
// 期望导航栏真实隐藏 默认NO 需要在viewWillAppear中或之前设置改属性
// 设置后不会立马隐藏,会在当前页面push的代理navigationController:willShowViewController:animated:中改变,
// navigationController:willShowViewController:animated:在当前vc的viewWillAppear之后调用
@property(nonatomic, assign) IBInspectable BOOL hbd_prefersBarRealHidden;

// computed
@property(nonatomic, assign, readonly) CGFloat hbd_computedBarShadowAlpha;
Expand Down
8 changes: 4 additions & 4 deletions HBDNavigationBar/Classes/UIViewController+HBD.m
Original file line number Diff line number Diff line change
Expand Up @@ -125,17 +125,17 @@ - (void)setHbd_barHidden:(BOOL)hidden {
objc_setAssociatedObject(self, @selector(hbd_barHidden), @(hidden), OBJC_ASSOCIATION_COPY_NONATOMIC);
}

- (BOOL)hbd_barRealHidden {
- (BOOL)hbd_prefersBarRealHidden {
id obj = objc_getAssociatedObject(self, _cmd);
return obj ? [obj boolValue] : NO;
}

- (void)setHbd_barRealHidden:(BOOL)hidden {
objc_setAssociatedObject(self, @selector(hbd_barRealHidden), @(hidden), OBJC_ASSOCIATION_COPY_NONATOMIC);
- (void)setHbd_prefersBarRealHidden:(BOOL)hidden {
objc_setAssociatedObject(self, @selector(hbd_prefersBarRealHidden), @(hidden), OBJC_ASSOCIATION_COPY_NONATOMIC);
}

- (BOOL)hbd_isBarRealHiddenHasAssociatedObject {
id obj = objc_getAssociatedObject(self, @selector(hbd_barRealHidden));
id obj = objc_getAssociatedObject(self, @selector(hbd_prefersBarRealHidden));
return obj ? YES : NO;
}

Expand Down

0 comments on commit 637cc01

Please sign in to comment.