GKNavigationBarViewController的分类实现方式,耦合度底,使用更加便捷
Swift版本请看这里 → GKNavigationBarSwift
感谢使用该库,如果在使用过程中遇到问题可查看issue或提交issue,或者进QQ群1047100313
1、查看是否使用了+ (instancetype)rootVC:(UIViewController *)rootVC 方法初始化导航控制器
2、查看是否在控制器中禁用了手势返回self.gk_interactivePopDisabled = YES,self.gk_fullScreenPopDisabled = YES
查看是否调用了跟导航栏相关的方法,如self.gk_navTitle = @"GKNavigationBar"
注意:只有调用跟导航栏相关的方法才会初始化导航栏!
解决办法:在控制器初始化方法里面设置状态栏样式
- (instancetype)init {
if (self = [super init]) {
self.gk_statusBarStyle = UIStatusBarStyleLightContent;
}
return self;
}
解决办法:在基类控制器里实现下面两个方法
- (BOOL)prefersStatusBarHidden {
return self.gk_statusBarHidden;
}
- (UIStatusBarStyle)preferredStatusBarStyle {
return self.gk_statusBarStyle;
}
直接拖入GKNavigationBar文件夹到项目,#import "GKNavigationBar.h",开始使用
Podfile中添加 pod 'GKNavigationBar',执行pod install 或pod update 安装, #import <GKNavigationBar/GKNavigationBar.h>,开始使用
Cartfile中添加 github "QuintGao/GKNavigationBar",执行carthage update --platform iOS, #import <GKNavigationBar/GKNavigationBar.h>,开始使用
在Xcode中点击File->Swift Packages->Add Package Dependency,然后输入https://github.com/QuintGao/GKNavigationBar 下载相应版本的代码,开始使用
[GKConfigure setupDefaultConfigure]
UINavigationController *nav = [UINavigationController rootVC:[GKMainViewController new]];
self.gk_navBackgroundColor = [UIColor red]
// 重写下面的方法,拦截返回手势
#pragma mark - GKGesturePopHandlerProtocol
- (BOOL)navigationShouldPop {
// do something
return NO;
}
也可以单独处理点击返回和手势返回
// 重写下面的方法,拦截点击返回
- (BOOL)navigationShouldPopOnClick {
// do something
return NO;
}
// 重写下面的方法,拦截手势返回
- (BOOL)navigationShouldPopOnGesture {
// do something
return NO;
}
1、开启系统导航过渡处理 nav.gk_openSystemNavHandle = YES;
2、在控制器中设置gk_popDelegate并实现下面的方法
#pragma mark - GKViewControllerPopDelegate
- (void)viewControllerPopScrollBegan {
}
- (void)viewControllerPopScrollUpdate:(float)progress {
// 由于已经出栈,所以self.navigationController为nil,不能直接获取导航控制器
UIViewController *vc = [GKConfigure visibleViewController];
vc.navigationController.navigationBar.alpha = 1 - progress;
}
- (void)viewControllerPopScrollEnded:(BOOL)finished {
// 由于已经出栈,所以self.navigationController为nil,不能直接获取导航控制器
UIViewController *vc = [GKConfigure visibleViewController];
vc.navigationController.navigationBar.alpha = 1;
vc.navigationController.navigationBarHidden = finished;
}
// 屏蔽导航栏间距处理
configure.shiledItemSpaceVCs = @[NSClassFromString(@"TZPhotoPickerController"), @"TZAlbumPickerController", @"TZ"];
// 屏蔽手势处理
configure.shiledGuestureVCs = @[NSClassFromString(@"TZPhotoPickerController"), @"TZAlbumPickerController", @"TZ"];
更多属性及方法可在demo中查看
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型