zoukankan      html  css  js  c++  java
  • 页面跳转问题,多次 push 到新的页面的问题的解决方法

    今日在做一个扫一扫的功能,突然发现多次点击了扫一扫的图片后,造成多次触发轻拍手势,就多次push到新的页面,本想在轻拍手势内对push的进行拦截,但是又觉得如果有好多的地方都要实现对该问题的解决岂不是很麻烦吗?于是想了一下,我们可以通过重写导航控制器的方法来解决这个问题。

    下面就是我写好的方法,你可以直接引入到你的工程中,就能够解决类似的问题。

    (1)、首先在程序的一个导航控制器类(就是程序中的所有导航控制器的父类名字一般都是:XXXBaseNavgationController )的延展中去遵循代理:UINavigationControllerDelegate;       在延展中编写一个属性

      @property (nonatomic,getter=isPushing) BOOL pushing;   // 记录 push 的标记,用于:从源头上解决,页面的多 push 问题

    (2)、然后在 viewDidLoad 方法中设置代理。 

    (3)、在用于 push 的方法里重写父类的方法,代码如下:

    // 重写父类方法
    - (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated
    {
        //~下面代码是解决页面的多次 push 使用~
    
        if (self.pushing ==  YES) {
    
             NSLog(@"被拦截");
    
            return;
    
        }else{
    
             NSLog(@"被push");
    
            self.pushing = YES;
    
        }

    (4)、实现导航控制器的代理方法,代码如下:

    //导航控制器的代理方法的实现(为了解决页面 的多次 push 的问题)
    -(void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated{
        self.pushing = NO;
        
    }

    OK,到这里就从根源上实现了所有页面, 在 push 的时候,由于手快导致的 多次 push 的问题,优化了性能,相比从按钮的点击事件处拦截 push 方法,更加优越。 

  • 相关阅读:
    php 有趣的头像拼图
    php基础篇-二维数组排序姐妹篇
    php基础篇-二维数组排序 array_multisort
    php应用篇-百度图片的防盗链
    《留给自己,也留给每一位在青春里迷茫找不到自己的年轻人》 爱你现在的时光——白岩松
    没有什么能一下打垮你,就像没有什么能一下拯救你
    php基础篇-双引号、单引号的区别
    TortoiseSVN Start
    cover-view文案被切割:加全角空格
    canvas不显示,必须设置canvas-id
  • 原文地址:https://www.cnblogs.com/benpaobadaniu/p/5652628.html
Copyright © 2011-2022 走看看