拦截系统自带的Pop事件
首先,在开发中我遇到一个问题,用故事版将控制器连接起来,之后就有了系统自带的返回按钮(大家都知道,说的很直白)。
当我想点击返回按钮的时候,根据自己的情况再确定反不反回上一个控制器。解决方案:
我看到了[南峰子的技术博客](http://southpeak.github.io/blog/archives/)
抄过来的,不是原创,只是我在找相关解决方案的时候不好找,就多写写了。
.h
#import <UIKit/UIKit.h>@protocol BackButtonHandlerProtocol <NSObject>@optional
-(BOOL)navigationShouldPopOnBackButton;
@end@interface UIViewController (BackButtonHandler)<BackButtonHandlerProtocol>@end.m
//
//  UIViewController+BackButtonHandler.m
//  NavigationCtrlText
//
//  Created by 郑鹏 on 15/12/26.
//  Copyright © 2015年 littleSun_zheng. All rights reserved.
//#import "UIViewController+BackButtonHandler.h"
@implementation UIViewController (BackButtonHandler)
@end//UINavigationBar的代理方法之一  的完整签名
- (BOOL)navigationBar:(UINavigationBar *)navigationBar shouldPopItem:(UINavigationItem*)item {if([self.viewControllers count] < [navigationBar.items count]){return YES;}BOOL shouldPop = YES;UIViewController* vc = [self topViewController];if([vc respondsToSelector:@selector(navigationShouldPopOnBackButton)]) {shouldPop = [vc navigationShouldPopOnBackButton];}if(shouldPop) {dispatch_async(dispatch_get_main_queue(), ^{[self popViewControllerAnimated:YES];});} else {
/*__系统返回按钮会随着返回动画而边淡__**littleSun_zheng**/for(UIView *subview in [navigationBar subviews]) {if(subview.alpha < 1.) {[UIView animateWithDuration:.25 animations:^{subview.alpha = 1.;}];}}}return NO;
}
@end://需要使用的地方:在这个方法里写返回按钮的事件处理
-(BOOL)navigationShouldPopOnBackButton
{NSLog(@"捕捉到返回事件");UIAlertView *alerView = [[UIAlertView alloc] initWithTitle:@"提示:" message:@"您确定要放弃编辑吗?" delegate:self cancelButtonTitle:@"确定" otherButtonTitles:@"不", nil];alerView.tag = 1000;[alerView show];return NO;//这里就是阻止 “pop” 动作
}
#pragma mark - UIAlertViewDelegate
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{if (alertView.tag == 1000) {if(buttonIndex == 0){[self.navigationController popViewControllerAnimated:YES]; }else{//什么都不需要做了;}}
}

iOS 拦截系统自带的Pop事件相关推荐

  1. 改变iOS系统自带返回按钮事件

    最近要用到  用 系统自带的带箭头的返回按钮 返回到指定的ViewController 或者返回到RootViewController, 自定义NaviBarItem也可以 但是想用系统的箭头,就偶然 ...

  2. ios开发系统自带推送(ios自学笔记)

    关于ios系统子弟的推送.放在这里和大家分享 APNS的推送机制 首先我们看一下苹果官方给出的对ios推送机制的解释.如下图 Provider就是我们自己程序的后台服务器,APNS是Apple Pus ...

  3. iOS中系统自带正则表达式的应用

    //组装一个字符串,把里面的网址解析出来 NSString *urlString = @"sfdshttp://www.baidu.com"; NSError *error; // ...

  4. ios获取系统自带的文字蓝色色值

    要获取上面的蓝色,用取色器取出的颜色又不对,怎么办?一句话就搞定了 UIColor *textColor = self.view.tintColor;

  5. iOS开发之利用苹果系统自带地图进行地图开发

    了解更多关于移动开发,欢迎到悦卓3G孵化园:http://www.91train.com iOS中有一个系统自带的 完整的一套地图框架--MapKit.Framework和CoreLocation.F ...

  6. ios开发调用系统自带的分享

    1.一般情况下提到分享,我们会想到去集成某些第三方的框架,例如很多第三方分享的集合例如友盟的,集成效果如下 这里只涉及到了常用的新浪.微信.及qq: 分享功能:三个平台都比较宽松,只有有appid,都 ...

  7. ios android 截屏 分享,iOS 系统自带截屏分享

    分享一篇iOS系统自带截屏分享 使用方案 UIImage *image = [KJTools kj_shareWithHideBlock:^bool{ /// 隐藏不需要截图的区域 return YE ...

  8. iOS 系统自带截屏分享

    分享一篇iOS系统自带截屏分享 使用方案 UIImage *image = [KJTools kj_shareWithHideBlock:^bool{/// 隐藏不需要截图的区域return YES; ...

  9. IOS系统自带方法将汉语转换成拼音

    //汉字转换成拼音:系统自带方法 //创建字符串 NSString *str = @"邵亚启"; 1.桥接转换成C的字符串 CFStringRef aCFString = (__b ...

最新文章

  1. 最好用的货币:货币发展史和BCH
  2. 基于系统级触发器的审计功能
  3. 财政指标是什么意思_in the black是“在黑暗中”吗?那in the dark是什么意思?
  4. React Native使用指南-原生模块
  5. 转载:面向站长和网站管理员的Web缓存加速指南
  6. TDD---测试驱动开发(1)
  7. Webpack+Babel+React环境搭建
  8. 视频教程-微信小程序直播开发快速入门-微信开发
  9. 谁在制造房价泡沫:土地供应下滑 居民杠杆上升
  10. 基于Arch的live系统
  11. Go开发中配置一个Logger日志的功能实现(结合zap日志库)
  12. 软件开发知识点基础介绍
  13. AI Studio 飞桨 零基础入门深度学习笔记1-深度学习的定义
  14. linux服务器忘记ssh密码_Linux 忘记密码解决方法,Linux 远程登录
  15. stm32f302实现斩波控制步进电机_spwm超级无敌stm32步进电机控制教程
  16. 做刀尖上的舞者 京东无线服务端的三次架构演进
  17. 数据结构(十九) -- C语言版 -- 树 - 树、森林、二叉树的江湖爱恨情仇、相互转换
  18. 学建模的快速方法【快捷键】
  19. 关于 Windows 10 下安装 Linux 过程及报 'WSL...' 错误的解决办法
  20. 计算机专业的考研英语作文,2019考研英语小作文万能模板:建议信1_计算机专业考研...

热门文章

  1. 腾达F6路由器无线中继功能设置
  2. Maven deploy时排除指定的某个module
  3. springboot 获取访问者的ip地址、访问设备信息、城市地址信息
  4. 目标检测 | End-to-end Lane Detection through Differentiable Least-Squares Fitting
  5. 分布式系统二、MogileFS
  6. 用户分析、店铺数据分析、小程序数据分析(思维导图)
  7. 【转】前端——实用UI组件库
  8. 互联网出海,从粗放圈地到落地深耕
  9. 廖雪峰Git教程笔记与总结 -- Git简介、常用命令、分支管理
  10. news_flash新闻快讯项目 Chapter 1