// // QXRoomNavigationController.m // QXLive // // Created by 启星 on 2025/10/27. // #import "QXRoomNavigationController.h" @implementation QXRoomNavigationController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. self.interactivePopGestureRecognizer.delegate = self; self.delegate = self; } -(void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; } -(void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated{ if (self.viewControllers.count == 1) { viewController.hidesBottomBarWhenPushed = YES; } // if ([self respondsToSelector:@selector(interactivePopGestureRecognizer)]) { // self.interactivePopGestureRecognizer.enabled = YES; // } [super pushViewController:viewController animated:animated]; } //-(UIViewController *)popViewControllerAnimated:(BOOL)animated{ // if (self.childViewControllers.count == 2) { // if ([self respondsToSelector:@selector(interactivePopGestureRecognizer)]) { // self.interactivePopGestureRecognizer.enabled = YES; // } // } // return [super popViewControllerAnimated:animated]; //} -(void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated{ if (self.childViewControllers.count > 1) { if ([self respondsToSelector:@selector(interactivePopGestureRecognizer)]) { if ([self.visibleViewController isKindOfClass:NSClassFromString(@"QXRoomViewController")] || [self.visibleViewController isKindOfClass:NSClassFromString(@"QXChirldViewController")]) { self.interactivePopGestureRecognizer.enabled = NO; }else{ self.interactivePopGestureRecognizer.enabled = YES; } } }else{ if ([self respondsToSelector:@selector(interactivePopGestureRecognizer)]) { self.interactivePopGestureRecognizer.enabled = NO; } } } - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { return YES; } - (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer { if (self.viewControllers.count == 1) { return NO; } return YES; } @end