zoukankan      html  css  js  c++  java
  • ios7--系统自带的向右滑动手势返回上一个界面

    当从控制器A push到控制器B,我们返回控制器A,除了使用按钮返回 

    [self.navigationController pushViewController:Vc animated:YES];

    还可以使用ios7出来的向右滑动,返回控制器A

    文档中是这样定义的:

    @property(nullable, nonatomic, weak) id<UINavigationControllerDelegate> delegate;
    
    @property(nullable, nonatomic, readonly) UIGestureRecognizer *interactivePopGestureRecognizer NS_AVAILABLE_IOS(7_0) __TVOS_PROHIBITED;

    ----------------------------------------------------------------------

    我们在控制器B中的viewDidLoad中

    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) {
            self.navigationController.interactivePopGestureRecognizer.enabled = YES;      // 手势有效设置为YES  无效为NO
            self.navigationController.interactivePopGestureRecognizer.delegate = self;    // 手势的代理设置为self 
    }

    但是当回到控制器A中时,再想push到控制器B,就会出现卡屏,不会动的现象,因为rootView也会有向右滑动返回的问题

    要解决这个问题,我们只需在控制器A的viewDidAppear中设置,interactivePopGestureRecognizer为NO:

    -(void)viewDidAppear:(BOOL)animated {
        [super viewDidAppear:animated];
        if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) {
            self.navigationController.interactivePopGestureRecognizer.enabled = NO;
        }
    
    }

    这样即可以保证再B中向右滑返回A动后再次pushB时不会卡在A界面。

  • 相关阅读:
    Java内存模型
    Thread.sleep(0)的作用
    Java中用到的线程调度算法是什么
    怎么检测一个线程是否持有对象监视器
    为什么要使用线程池
    ThreadLocal
    生产者消费者模型的作用
    线程间通信
    线程安全
    c#常日期转换(转)
  • 原文地址:https://www.cnblogs.com/Mr-Ygs/p/5001347.html
Copyright © 2011-2022 走看看