美文网首页
iOS开发 导航栏出现多次push同一个页面问题解决办法

iOS开发 导航栏出现多次push同一个页面问题解决办法

作者: 想要飞翔的企鹅 | 来源:发表于2017-05-10 15:16 被阅读268次

在点击push下一个页面时,因为各种原因,点一下cell或按钮没有响应,用户可能就多点几下,这时候会打开好几个一样的页面。

这是因为push后的页面有耗时操作或者刚好push到另一个页面时,另一个页面正好在reloadData卡住主线程。造成点击cell时卡住了。

这时,我们可以通过重写导航控制器的方法来解决这个问题。

>>>>>>>>>>>>>>>>>> 

#import <UIKit/UIKit.h>

@interfaceNaviViewController : UINavigationController

@end

>>>>>>>>>>>>>>>>>>>

#import "NaviViewController.h"

@interfaceNaviViewController ()

// 记录push标志

@property(nonatomic,getter=isPushing)BOOLpushing;

@end

@implementationNaviViewController

- (void)viewDidLoad {

          [superviewDidLoad];

           self.delegate=self;

}

- (void)pushViewController:(UIViewController*)viewControlleranimated:(BOOL)animated {

        if(self.pushing==YES) {

                 NSLog(@"被拦截");

                 return;

        }else{

                 NSLog(@"push");

                 self.pushing=YES;

        }

[superpushViewController:viewControlleranimated:animated];

}

#pragma mark - UINavigationControllerDelegate

-(void)navigationController:(UINavigationController*)navigationControllerdidShowViewController:(UIViewController*)viewControlleranimated:(BOOL)animated {

             self.pushing=NO;

}

@end

相关文章

网友评论

      本文标题:iOS开发 导航栏出现多次push同一个页面问题解决办法

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