1
This commit is contained in:
@@ -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"
|
||||
|
||||
@@ -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;
|
||||
|
||||
/// 顶部自定义导航栏视图(懒加载)。
|
||||
|
||||
@@ -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;
|
||||
|
||||
// 适配状态栏高度变化(横竖屏切换)
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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{
|
||||
|
||||
|
||||
Reference in New Issue
Block a user