android多次打开一个页面,如何解决IOS UIViewController界面重复打开多次的问题

在ios开发中使用pushViewController方法打开UIViewController界面的时候,我们由于点击跳转按钮速度比较快,可能会出现UIViewController界面重复打开问题,那么我们该如何解决ios UIViewController界面重复跳转问题呢?

首先我们要了解的是pushViewController方法是UINavigationController类里面的方法,要想防止界面的重复跳转,需要新建一个UINavigationController类的category分类,如图所示:

023fedad9d4e468b47ced5e0f6e63357.png

然后在UINavigationController+NoRepeat.h文件中定义一个UINavigationController类的扩展方法,代码如下:#import 

@interface UINavigationController (NoRepeat)

//是否允许重复的方法定义

-(void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated noRepeatOpen:(BOOL)flag;

@end

在UINavigationController+NoRepeat.m中实现上面定义的方法,用于跳转到指定界面,代码如下:#import "UINavigationController+NoRepeat.h"

@implementation UINavigationController (NoRepeat)

- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated noRepeatOpen:(BOOL)flag

{

//判断该类是否已经打开,

if ([[self.viewControllers lastObject] isKindOfClass:viewController.class] && flag) {

return;

}

//隐藏下方tab,可忽略

if (self.viewControllers.count) {

viewController.hidesBottomBarWhenPushed = YES;

}

//跳转

[self pushViewController:viewController animated:animated];

}

@end

那么该如何使用我们的UINavigationController扩展类呢?只需要在对应的界面引入“#import "UINavigationController+NoRepeat.h"”头文件,然后使用如下方法即可://“orderQueryVC”是目标controller界面,"YES"表示不允许重复打开

[self.navigationController pushViewController:orderQueryVC animated:YES noRepeatOpen:YES];

按照上方代码,你就可以轻松解决UIViewController界面重复打开问题了。

来源网站:太平洋学习网,转载请注明出处:http://www.tpyyes.com/a/object-c_ios/755.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值