UINavigationController全屏右滑返回

【iOS】让我们一次性解决导航栏的所有问题 前言 前一段时间换了工作,公司项目赶得比较紧,没有时间更新文章,现在闲下来了,赶紧写一篇来弥补自己的羞愧。 今天我们来重点讨论导航栏返回的问题,包括各种问题的解决方案。 系统默认导航栏的返回按钮和返回方式 在默认情况下,导航栏返回按钮长这个样子 导航栏默认返回按钮 导航栏左上角的返回按钮,其文本默认为上一个ViewController的标题,如果上一个ViewContr 阅读详情
导航控制器默认自带了侧滑功能,当用户在界面的左边滑动的时候,就会有侧滑功能。 

导航控制器的view自带了滑动手势,当用户在界面左边拖动,就会触发滑动手势方法,并且有滑动返回功能,说明系统手势触发的方法已经实现了滑动返回功能。 

系统自带的滑动手势interactivePopGestureRecognizer ,打印出来:
NSLog(@"%@",self.interactivePopGestureRecognizer);
打印结果: 

8行代码教你搞定iOS导航控制器全屏滑动返回效果

由图中可知: 

1.系统自带的手势是UIScreenEdgePanGestureRecognizer类型对象,屏幕边缘滑动手势 

2.系统自带手势target是_UINavigationInteractiveTransition类型的对象 

3.target调用的action方法名叫handleNavigationTransition: 

实现全屏滑动功能 

添加一个全屏的滑动手势,调用系统滑动手势的target的action方法,利用系统实现的滑动返回功能,加上自己全屏滑动手势,就有全屏滑动功能了。 打印delegate:

NSLog(@"%@",self.interactivePopGestureRecognizer.delegate);

8行代码教你搞定iOS导航控制器全屏滑动返回效果

导航控制器全屏滑动注意点: 

1.禁止系统自带滑动手势使用。 

2.只有导航控制器的非根控制器才需要触发手势,使用手势代理,控制手势触发。 

代码:

- (void)viewDidLoad {  
[super viewDidLoad];  
// 获取系统自带滑动手势的target对象  
id target = self.interactivePopGestureRecognizer.delegate;  
// 创建全屏滑动手势,调用系统自带滑动手势的target的action方法  
UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:target action:@selector(handleNavigationTransition:)];  
// 设置手势代理,拦截手势触发  
pan.delegate = self;  
// 给导航控制器的view添加全屏滑动手势  
[self.view addGestureRecognizer:pan];  
// 禁止使用系统自带的滑动手势  
self.interactivePopGestureRecognizer.enabled = NO;
}

// 每次触发手势之前都会询问下代理,是否触发。用来拦截手势触发
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer{  
// 只有非根控制器才有滑动返回功能,根控制器没有。   
if (self.childViewControllers.count == 1) {        
return NO;  
}  
return YES;
}

NavigationController右滑返回手势效果 源码UINavigationController-YRBackGesture,iOS7之后,支持右滑返回手势,但是默认的右滑手势只能在左边线工作,且只能iOS7以上使用。而目前很多APP的右滑返回都可以支持几乎全屏的操作,更加简单,比如网易新闻APP。 这里我做了个Category,带视差效果,支持iOS4以上系统。 使用方式非常简单: 1. 导入头文件 2. 对NavigationController调用开启方法: [navi setEnableBackGesture:true]; PS: 这种右滑手势,目前网上有另外一种解决方案,采用Push前截屏保存页面快照的方式实现,缺点是如果前一个页面有动态效果则不能正常展现。个人不是很喜欢,毕竟有些前一个页面的动态效果可能还是需要在滑动过程中展现。 而本Category基于navi中的各个VC的view调用处理,能很好的展现前一个页面的动画,指示器等等。 当然缺点也有:不支持顶部的NavigationBar一起移动,不过个人一直都是使用自定义的顶部导航,因此无此问题。 另外,如只支持iOS7以上,可以使用新的Transition实现该手势效果。 立即下载

相关推荐

IOS开发中禁止NavigationController的向右滑动返回

IOS开发中禁止NavigationController的向右滑动返回 大家在进行开法的时候细心的朋友会发现,。用后在屏幕的最左边,向右滑动,,你会发现,你的App返回到了上一个页面,这是怎么回事呢, 在你的App中输入UINavigationController ,然后按住commend键,点击鼠标,跳进去,如下图: 在UINavigationController 的属性中你会发现 红色下划线部分,你看到了UINavigationController 自带的有一个panGeesture,所以,想要想要解决禁止NavigationController的向右滑动返回的问题,只需要将这个pan

UINavigationController 右滑返回

https://github.com/forkingdog/FDFullscreenPopGesture

孟宪亮的技术博客 856

检索生成(RAG) vs 长文本大模型:实际应用中如何选择?

大模型的上下文理解能力直接影响到 LLMs 在复杂任务和长对话中的表现。本期内容聚焦于两种主流技术:长上下文(Large Context Windows)和检索增强生成(RAG)。这两种技术各有何优势?在实际应用中,我们又该如何权衡选择?文章不仅详细阐述了这两种技术的工作原理,还深入分析了它们在效率、准确性和实施成本等方面的差异。文章特别提到了在执行重复性任务时使用 Context Caching 优化长上下文的优势,然而,缓存策略的效果很大程度上取决于提示词的可预测性。

2401_85782938的博客 1254

UINavigationController返回手势失效问题

从iOS7开始,系统为UINavigationController提供了一个interactivePopGestureRecognizer用于右滑返回(pop),但是,如果自定了back button或者隐藏了navigationBar,该手势就失效了。这是为什么呢?原因我们知道,interactivePopGestureRecognizer从手势触发到行为发生,要经过下面的阶段:interact

zcsoft 9781

Topas——基于Geant4的放射治疗蒙特卡罗算法模拟工具

本文内容参考Joseph Perl 的线上会议,视频详情可见于,该视频会议内容主要介绍Topas功能、软件架构、工作流程、参数设定、物理模型、具体案例等,对TOPAS的基本入门使用方法以及使用规定作出阐述。

fy方的博客 7601

winpcap无法安装提示新版本已经安装解决办法

问题显示如下该问题会导致ensp里的云识别不到网卡可能是因为之前安装了npcap,而且安装时勾选了第四个选项导致无法安装,需要完全卸载npcap解决办法:办法一:在控制面板的程序与卸载里面卸载npcap和winPcap,然后再安装winPcap,如果搜不到往下看办法二:在C:\Windows\SysWOW64目录下搜索wpcap.dll和packet.dll并重命名为wpcap.dll.old和packet.dll.old办法三:如果搜不到这两个文件需要安装win10Pcap才能找到这两个文件下载地址:Wi

qq_73202377的博客 3万+

ios UINavigationController右滑跨级返回问题

iOS中经常需要用到push和pop跨级的问题,我只说我遇到的问题, 我要实现类似微信扫描二维码的效果,大家可以看看微信扫描成功以后,在返回的时候不是返回到二维码页面。 也就是A->B->C  右滑和点击返回按钮的时候,要实现C->A 我们需要在B页面做一下处理,就是在B重新设置一下UINavigationController的viewcontrols。JMCDoctorVC

wangqiuwei07的专栏 734

深入解析FPGA中的GTX高速收发器架构与设计原理

本文深入解析了FPGA中GTX高速收发器的核心架构与设计原理。文章将GTX比作数据“高速公路”,详细拆解了其PMA(物理媒介适配层)与PCS(物理编码子层)的双层结构,阐述了串并转换、时钟恢复等关键技术,并提供了时钟源选型(QPLL/CPLL)、上电复位流程及信号完整性调试等实战指南,是掌握高速接口设计的必备知识。

f6g7h8i9j的博客 218

全局侧滑

先描述一下侧滑的整个流程:系统自带有侧滑功能,但是只能在边缘处滑动;系统是怎么实现的呢?现在分析一下,当屏幕发生侧滑手势时,控制器会先询问代理,navigationbar的左上角的item是否改变!如果改变,则不执行手势,如果没有改变,则代理会调用handleNavigationTransition:方法,实现侧滑手势;现在,我们先分析一下:如果在控制器询问代理的navigationbar左上角的i

Batac的博客 1094

深入分析大众点评 Ajax 接口:直接请求 JSON 数据高效获取评论

大众点评网站采用前后端分离架构,通过Ajax接口动态加载数据。按F12打开开发者工具,切换到Network(网络)面板。实际环境中,我们需要使用Python重现这一加密逻辑。查看请求响应,寻找包含评论数据的JSON接口。参数是大众点评的反爬机制核心,需要特别处理。:尊重网站的robots.txt文件规定。:仅将数据用于合法合规的研究和分析目的。:不侵犯大众点评的商业秘密和知识产权。打开大众点评网站,进入任意商户页面。:对采集到的用户信息进行脱敏处理。:避免对目标网站造成过大负担。

Z_suger7的博客 1580

计算机组成原理(第三版)唐朔飞-第五章输入输出系统-课后习题

计算机组成原理(第三版)唐朔飞-第五章输入输出系统-课后习题

weixin_45735391的博客 6万+

WZRootNavigationController:一种灵活的导航控制器解决方案

WZRootNavigationController:一种灵活的导航控制器解决方案 WZRootNavigationController 是一个开源项目,主要使用 Swift 语言开发,同时也兼容 Objective-C。该项目旨在提供一个更加灵活和易于管理的导航控制器解决方案,以解决 iOS 应用中导航条和转场动画的各种需求。 项目基础介绍 WZRootNavigationController ...

gitblog_00265的博客 719

科研绘图系列:R语言绘制极坐标饼图(pie plot)

科研绘图系列:R语言极坐标饼图(pie plot)

专注生信领域 1051

AngularJS Material 浏览器颜色(Browser Color)主题化指南:让移动端浏览器头部与主题同步

本文围绕 AngularJS Material 主题系统提供的 **Browser Colors(浏览器颜色)** 功能展开,讲解如何通过 `$mdThemingProvider.enableBrowserColor()`(配置阶段)与 `$mdTheming.setBrowserColor()`(运行时)将移动端浏览器的地址栏、导航栏颜色与 Material Design 主题中的调色板(Pal

gitblog_01042的博客 459

用一套可追溯的闭环,把设备变成可管理的资产:SAP S/4HANA Asset Management 模块详解

摘要:SAP S/4HANA的资产管理模块(EAM)通过标准化流程管理企业资产全生命周期,解决资产状态、需求和资源的不确定性。系统将资产抽象为技术对象,支持纠正性和预防性维护流程,通过维护工单实现可执行的工作包,并与物料管理、财务、生产计划等模块集成形成管理闭环。该模块可帮助降低非计划停机时间,通过数据驱动决策优化维护策略,提升资产可用率和运营效率。(149字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 249

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

iOS全屏返回手势终极指南:FDFullscreenPopGesture让你的App交互更流畅

FDFullscreenPopGesture是一个为iOS应用提供全屏返回手势的强大工具,它通过UINavigationController的分类实现了iOS7+系统风格的全屏返回功能,采用AOP设计思想,让集成变得异常简单。 ## 📱 为什么需要全屏返回手势? 在iOS应用开发中,系统默认的返回手势只能在屏幕左侧边缘触发,这对于大屏幕设备的用户来说体验并不理想。FDFullscreenPo

gitblog_00807的博客 1097

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

终极指南:如何使用FDFullscreenPopGesture让iOS应用手势导航更流畅

还在为iOS应用中的手势返回操作不够流畅而烦恼吗?FDFullscreenPopGesture是一个专为iOS开发者设计的UINavigationController扩展库,通过AOP(面向切面编程)方式实现全屏返回手势,让你的应用拥有与iOS7+系统风格一致的手势导航体验。🎯 ## ✨ 为什么选择FDFullscreenPopGesture? 传统的iOS导航手势只能在导航栏区域触发,这在

gitblog_00596的博客 602

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

iOS-右滑返回,利用Runtime添加全屏Pop手势

转载请注明出处:http://blog.youkuaiyun.com/qxuewei/article/details/53939129项目中经常会遇到类似需求,需要在某控制器增加全屏右滑返回功能. 在我们不隐藏 NavigationBar 的前提下,系统会自动替我增加此功能,只是它作用的范围仅仅在屏幕左边有限区域. 我们需要在整个界面添加右滑返回的功能 思路: 利用Runtime 捕获到 系统的全屏Pop手

极客学伟的技术分享社区 2594

REA 逆向分析工具完整安装指南:从 rea 命令到 AI 智能体接入

手上有一个没源码的 Electron 应用,想弄清它加载了哪些 JavaScript、调用了哪些原生能力?REA 用一条 `rea` 命令加一个 MCP server 做逆向分析,从应用行为一路覆盖到原生二进制,装完几分钟就能让 Claude Code、Cursor 这类智能体直接调用它干活。 ## 🚀 两条命令装好,一条命令见真章 把 `rea` 理解成插在终端里的一支探针:你负责指向目标

gitblog_00116的博客 666

iOS右滑返回手势深度全解和最佳实施方案

序言    在ios7以后,苹果推出了手势滑动返回功能,也就是从屏幕左侧向右滑动可返回上一个界面。大大提高了APP在大屏手机和iPad上的操作体验,场景切换更加流畅。做右滑返回手势配置时,可能会遇到的问题:    1. 右滑返回手势为什么失效?    2. 右滑返回手势如何全局开启及怎么避免页面卡死?    3. 特定页面停用右滑手势后如何再次开启?    4. 右滑返回手势与滚动视图手势冲突怎么...

weixin_33691817的博客 1715

右滑返回interactivePopGestureRecognizer<转>

右滑手势返回 //自定义baseVC中- (void)viewDidLoad { [super viewDidLoad]; // self.view.backgroundColor = ViewBgColor; [self.navigationController.navigationBar setBarStyle:UIBarStyleBlack]; s...

weixin_34272308的博客 204

iOS开发之自定义导航栏返回按钮右滑返回手势失效的解决

我相信针对每一个iOS开发者来说~除了根视图控制器外~所有的界面通过导航栏push过去的界面都是可以通过右滑来返回上一个界面~其实~在很多应用和APP中~用户已经习惯了这个功能~然而~作为开发者的我们~也并没有为此做些什么~因为我们在创建项目时~苹果公司已经为我们都做好了~那么~我们这期就来聊一聊这系统自带的右滑方法以及如何修改和拦截这个不被重视的方法~ 什么时候会被拦截 当我们使用代码或者用

风铃的翼的博客 634

【转】iOS右滑返回手势全解和最佳实施方案

序言   在ios7以后,苹果推出了手势滑动返回功能,也就是从屏幕左侧向右滑动可返回上一个界面。大大提高了APP在大屏手机和iPad上的操作体验,场景切换更加流畅。做右滑返回手势配置时,可能会遇到的问题:   1. 右滑返回手势为什么失效?   2. 右滑返回手势如何全局开启及怎么避免页面卡死?   3. 特定页面停用右滑手势后如何再次开启?   4. 右滑返回手势与滚动视图手势冲突怎么解决?  ...

weixin_42074202的博客 1万+

iOS开发之自定义导航栏返回按钮右滑返回手势失效的解决---亲测是有效的。

问题一:怎么自定义leftItem问题二:为什么系统自带的右滑返回手势失效问题三:怎么解决这个失效问题 3.怎么解决这个失效问题 其实很简单很简单~只需要添加下面这一句代码即可 self.navigationController.interactivePopGestureRecognizer.delegate = (id)self; 其实到这里~问题应该都解决了~但是~毕竟右滑返回手势只能

春风得意,马蹄仍急;少年豪情,一笑难回。 1940
上一篇: backBarButtonItem和leftBarButtonItem 区别
下一篇: iOS7滑动返回
直隶码农
博客等级 码龄19年 95粉丝 103原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值