zoukankan      html  css  js  c++  java
  • 第十三篇、Swift_Nav自定义返回按钮后或者隐藏导航栏,Pop返回手势失效的解决方法 Pop全局返回添加的方法

    边缘的pop返回手势:

        override func viewDidLoad() {
            super.viewDidLoad()
            view.backgroundColor = UIColor.purple
            // 保留Pop手势
            navigationController?.interactivePopGestureRecognizer?.delegate = self
            navigationController?.interactivePopGestureRecognizer?.isEnabled = true
        }

    这些代码主要实在UINavigationController上添加

    Swift全屏pop返回手势:

    class CustomNavigationController: UINavigationController {
        override func viewDidLoad() {
            super.viewDidLoad()
            // 1.取出手势&view
            guard let gesture = interactivePopGestureRecognizer else { return }
            gesture.isEnabled = false
            let gestureView = gesture.view
            // 2.获取所有的target
            let target = (gesture.value(forKey: "_targets") as? [NSObject])?.first
            guard let transition = target?.value(forKey: "_target") else { return }
            let action = Selector(("handleNavigationTransition:"))
            // 3.创建新的手势
            let popGes = UIPanGestureRecognizer()
            popGes.maximumNumberOfTouches = 1
            gestureView?.addGestureRecognizer(popGes)
            popGes.addTarget(transition, action: action)
        }
        override func pushViewController(_ viewController: UIViewController, animated: Bool) {
            viewController.hidesBottomBarWhenPushed = true
            super.pushViewController(viewController, animated: animated)
        }
    }

    OC POP手势返回:

    - (void)viewDidLoad {
        [super viewDidLoad];
    
        id target = self.interactivePopGestureRecognizer.delegate;
        UIPanGestureRecognizer * pan = [[UIPanGestureRecognizer alloc]initWithTarget:target action:@selector(handleNavigationTransition:)];
        pan.delegate = self;
        [self.view addGestureRecognizer:pan];
        [self.interactivePopGestureRecognizer setEnabled:NO];
    }
    
    - (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer {
        return self.childViewControllers.count == 1 ? NO : YES;
    }
  • 相关阅读:
    [BZOJ2071] [POI2004]JAS
    [BZOJ1852] [MexicoOI06]最长不下降序列(dp+贪心转移)
    用Java实现基于SOAP的XML文档网络传输及远程过程调用(RPC)(转)
    Amazon云计算的一些实用应用(转)
    使用netbeans6.7.1开发webservice 服务端 和 客户端(转)
    深入探索SOAP1.1使用SAAJ1.2.1(转)
    推荐:PoolParty!一个管理EC2集群的Ruby Gem开源工具(转)
    max 加载 菜单项
    2011 新相
    重要的视图类型解释。
  • 原文地址:https://www.cnblogs.com/HJQ2016/p/5966559.html
Copyright © 2011-2022 走看看