美文网首页
Navigation( 基类 ) 后的侧滑 自定义操作(解决侧滑

Navigation( 基类 ) 后的侧滑 自定义操作(解决侧滑

作者: AlexLi_ | 来源:发表于2016-11-14 17:57 被阅读60次

    作用
    1、我们可以自定义侧滑的操作
    2、可以解决在RootViewController时侧滑引发的卡死问题
    3、self.interactivePopGestureRecognizer.enabled = NO; ( 激活 )

    (写在NavigationViewController的基类中)

    首先我们让我们的控制器的Pop手势的代理设置为当前控制器

    设置代理 UIGestureRecognizerDelegate
    
    
    __weak typeof(self) weakSelf = self;
    
    self.interactivePopGestureRecognizer.delegate = weakSelf;
    
    

    然后我们去实现他的代理方法

    
    #pragma mark - UIGestureRecognizerDelegate
    - (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer*)gestureRecognizer{
        //判断是否为rootViewController
        if (self&& self.navigationController.viewControllers.count == 1) {
             // 例如  [self dismissViewController:NO animation:nil];
            return NO;
        }
        return YES;
    }
    
    

    重写 pushViewController 方法 来统一返回按钮

    
    /*!
     *  @author Jing, 16-09-07 15:09:47
     *
     *  @brief 重写返回按钮
     */
    -(void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated
    {
        [super pushViewController:viewController animated:animated];
        if (viewController.navigationItem.leftBarButtonItem ==nil && self.viewControllers.count >1) {
    
    // 自定义一个  BarButtonItem  的按钮
            viewController.navigationItem.leftBarButtonItem = [self creatBackButton];
        }
    }
    
    在 chirldController 中设置了当前控制器为代理  的话
    
    在 willap 设置代理
    
    在 willdisap 设置self.navigationcontroller 为 delegate
    
    

    相关文章

      网友评论

          本文标题:Navigation( 基类 ) 后的侧滑 自定义操作(解决侧滑

          本文链接:https://www.haomeiwen.com/subject/tyvvuttx.html