diff --git a/keyBoard/Class/Base/VC/BaseTabBarController.m b/keyBoard/Class/Base/VC/BaseTabBarController.m index b24d801..442e0b7 100644 --- a/keyBoard/Class/Base/VC/BaseTabBarController.m +++ b/keyBoard/Class/Base/VC/BaseTabBarController.m @@ -30,7 +30,6 @@ // 首页 HomeMainVC *home = [[HomeMainVC alloc] init]; - home.title = @"首页"; BaseNavigationController *navHome = [[BaseNavigationController alloc] initWithRootViewController:home]; navHome.tabBarItem = [self tabItemWithTitle:@"首页" image:@"tab_home" @@ -54,7 +53,6 @@ // 我的 MyVC *my = [[MyVC alloc] init]; - my.title = @"我的"; BaseNavigationController *navMy = [[BaseNavigationController alloc] initWithRootViewController:my]; navMy.tabBarItem = [self tabItemWithTitle:@"我的" image:@"tab_my" diff --git a/keyBoard/Class/Base/VC/BaseViewController.h b/keyBoard/Class/Base/VC/BaseViewController.h index f206efb..2a1299d 100644 --- a/keyBoard/Class/Base/VC/BaseViewController.h +++ b/keyBoard/Class/Base/VC/BaseViewController.h @@ -11,8 +11,10 @@ NS_ASSUME_NONNULL_BEGIN @interface BaseViewController : UIViewController -/// 是否启用自定义导航栏(默认 yes)。 -/// 开启后:隐藏系统导航栏,显示顶部自定义 navView(含返回按钮和中间标题)。 +/// 是否显示自定义导航栏(默认 YES)。 +/// 说明:系统导航栏在 Base 内始终隐藏; +/// - 当该值为 YES:显示自定义 navView; +/// - 当该值为 NO:自定义 navView 隐藏(全屏内容无导航)。 @property (nonatomic, assign) BOOL kb_enableCustomNavBar; /// 顶部自定义导航栏视图(懒加载)。 diff --git a/keyBoard/Class/Base/VC/BaseViewController.m b/keyBoard/Class/Base/VC/BaseViewController.m index 7fc6fc3..629e435 100644 --- a/keyBoard/Class/Base/VC/BaseViewController.m +++ b/keyBoard/Class/Base/VC/BaseViewController.m @@ -26,6 +26,7 @@ - (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor whiteColor]; + [self.navigationController setNavigationBarHidden:YES animated:NO]; self.kb_enableCustomNavBar = true; } @@ -89,8 +90,7 @@ } - (void)kb_updateCustomNavBarVisibility { - // 控制系统导航栏显隐 - [self.navigationController setNavigationBarHidden:self.kb_enableCustomNavBar animated:NO]; + // 根据开关决定是否显示自定义 navView self.kb_navViewInternal.hidden = !self.kb_enableCustomNavBar; // 适配状态栏高度变化(横竖屏切换) diff --git a/keyBoard/Class/Me/VC/MyVC.m b/keyBoard/Class/Me/VC/MyVC.m index af641a5..dc2ae13 100644 --- a/keyBoard/Class/Me/VC/MyVC.m +++ b/keyBoard/Class/Me/VC/MyVC.m @@ -25,6 +25,7 @@ [super viewDidLoad]; // 背景图 self.view.backgroundColor = UIColor.clearColor; + self.kb_navView.hidden = true; self.bgImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"my_bg_icon"]]; self.bgImageView.contentMode = UIViewContentModeScaleAspectFill; [self.view addSubview:self.bgImageView]; @@ -53,16 +54,7 @@ self.tableView.tableHeaderView = self.header; } -- (void)viewWillAppear:(BOOL)animated{ - [super viewWillAppear:animated]; - [self.navigationController setNavigationBarHidden:YES animated:animated]; -} - -- (void)viewWillDisappear:(BOOL)animated{ - [super viewWillDisappear:animated]; - [self.navigationController setNavigationBarHidden:NO animated:animated]; - -} +// 系统导航栏的显隐由 BaseViewController 统一处理(始终隐藏),此处无需再设置。 #pragma mark - UITableView diff --git a/keyBoard/Class/Search/VC/KBSearchResultVC.m b/keyBoard/Class/Search/VC/KBSearchResultVC.m index 66847c9..d8278c2 100644 --- a/keyBoard/Class/Search/VC/KBSearchResultVC.m +++ b/keyBoard/Class/Search/VC/KBSearchResultVC.m @@ -71,18 +71,7 @@ static NSString * const kResultCellId = @"KBSkinCardCell"; } } -- (void)viewWillAppear:(BOOL)animated { - [super viewWillAppear:animated]; - // 隐藏系统导航栏 - [self.navigationController setNavigationBarHidden:YES animated:animated]; -} - -- (void)viewWillDisappear:(BOOL)animated { - [super viewWillDisappear:animated]; - if (self.isMovingFromParentViewController || self.isBeingDismissed) { - [self.navigationController setNavigationBarHidden:NO animated:animated]; - } -} +// 系统导航栏显隐交给 Base 统一处理(全局隐藏),该 VC 保持默认即可。 #pragma mark - Private diff --git a/keyBoard/Class/Search/VC/KBSearchVC.m b/keyBoard/Class/Search/VC/KBSearchVC.m index 6382757..6f0dc65 100644 --- a/keyBoard/Class/Search/VC/KBSearchVC.m +++ b/keyBoard/Class/Search/VC/KBSearchVC.m @@ -104,19 +104,8 @@ typedef NS_ENUM(NSInteger, KBSearchSection) { } } -- (void)viewWillAppear:(BOOL)animated { - [super viewWillAppear:animated]; - // 隐藏系统导航栏,使用自定义返回按钮 - [self.navigationController setNavigationBarHidden:YES animated:animated]; -} - -- (void)viewWillDisappear:(BOOL)animated { - [super viewWillDisappear:animated]; - // 仅在返回上一级时恢复导航栏;push 到下一级(同样隐藏导航栏)不做处理,避免闪烁 - if (self.isMovingFromParentViewController || self.isBeingDismissed) { - [self.navigationController setNavigationBarHidden:NO animated:animated]; - } -} +// 系统导航栏的显隐由 BaseViewController 统一处理(始终隐藏)。 +// 该 VC 未继承 Base,但保持不去显示系统导航栏,避免来回切换闪烁。 #pragma mark - Private diff --git a/keyBoard/Class/Shop/VC/KBShopVC.m b/keyBoard/Class/Shop/VC/KBShopVC.m index 326983e..7969b8f 100644 --- a/keyBoard/Class/Shop/VC/KBShopVC.m +++ b/keyBoard/Class/Shop/VC/KBShopVC.m @@ -40,17 +40,7 @@ static const CGFloat JXheightForHeaderInSection = 50; } -- (void)viewWillAppear:(BOOL)animated { - [super viewWillAppear:animated]; - - [self.navigationController setNavigationBarHidden:YES animated:YES]; -} - -- (void)viewWillDisappear:(BOOL)animated { - [super viewWillDisappear:animated]; - - [self.navigationController setNavigationBarHidden:NO animated:NO]; -} +// 系统导航栏显隐由 Base 统一管理(全局隐藏),该 VC 不再手动切换,避免闪烁。 - (void)setupUI{