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界面。

  • 相关阅读:
    浏览器之window对象--javascript
    CSS3盒子模型
    CSS3动画以及animation事件
    CSS3响应式布局
    原生JS实现tab切换--web前端开发
    html5表单与PHP交互
    UITableView 的坑
    多线程:Operation(二)
    多线程:Operation(一)
    GCD(Swift)
  • 原文地址:https://www.cnblogs.com/Mr-Ygs/p/5001347.html
Copyright © 2011-2022 走看看