QuintGao / GKNavigationBarViewController

iOS自定义导航栏-导航栏联动
https://www.jianshu.com/p/577755d0d69a
MIT License
727 stars 130 forks source link

根部控制器在开启gk_openScrollLeftPush = YES 后,根控制器下左滑1次,再push其他界面卡死 #16

Closed lancelot9527 closed 5 years ago

lancelot9527 commented 5 years ago

2018.9.11 -- 2.1.0 解决根控制器开启左滑push无效的问题

这个根控制器开启左滑push无效的问题,不应该公开个属性给别人设置吗。升级后就直接出bug了。

//此处代码给我改成这样解决了
if (self.navigationController.gk_openScrollLeftPush) {
     // 开启了左滑push功能
     // 忽略根控制器
    if (self.navigationController.viewControllers.count <= 1) {
        return NO;
    }
} 
lancelot9527 commented 5 years ago

把Demo改成这样就能复现,场景就是 window的RootController是一个TabbarController,然后ChildVC是NavigationController

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    // 配置导航栏属性
    [[GKNavigationBarConfigure sharedInstance] setupDefaultConfigure];

    self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];

    self.window.backgroundColor = [UIColor whiteColor];

//    UINavigationController *nav = [UINavigationController rootVC:[GKMainViewController new] translationScale:NO];
//    nav.gk_openScrollLeftPush = YES;

    self.window.rootViewController = [GKDemo004ViewController new];

    [self.window makeKeyAndVisible];

    return YES;
}
@implementation GKDemo004ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    self.tabBar.tintColor = [UIColor redColor];

    self.delegate = self;

    UINavigationController *nav0 = [UINavigationController rootVC:[GKTab001ViewController new] translationScale:NO];
    nav0.gk_openScrollLeftPush = YES;

    UINavigationController *nav1 = [UINavigationController rootVC:[GKTab002ViewController new] translationScale:NO];
    nav1.gk_openScrollLeftPush = YES;

    UINavigationController *nav2 = [UINavigationController rootVC:[GKTab003ViewController new] translationScale:NO];
    nav2.gk_openScrollLeftPush = YES;

    [self addChildVC:nav0 title:@"首页" imageName:@"Home"];
    [self addChildVC:nav1 title:@"活动" imageName:@"Activity"];
    [self addChildVC:nav2 title:@"我的" imageName:@"Mine"];
}
QuintGao commented 5 years ago

按照你说的试了下,并没有出现卡死的问题,你那边可否提供demo我试试

lancelot9527 commented 5 years ago

https://youtu.be/7Pi9ETYwjW0

lancelot9527 commented 5 years ago

用你给的Demo改的,就是上面的代码。 GKNavigationBarViewController-master 2.zip

QuintGao commented 5 years ago

问题已修复,稍后pod也会更新