iOS interactivePopGestureRecognizer 导致视图显示不正确的导航栏

     2023-03-10     230

关键词:

【中文标题】iOS interactivePopGestureRecognizer 导致视图显示不正确的导航栏【英文标题】:iOS interactivePopGestureRecognizer causing views to display incorrect navigation bar 【发布时间】:2014-01-19 10:47:58 【问题描述】:

我以这种方式在 viewDidAppear 中启用了 interactivePopGestureRecognizer:

   if ([self.navigationController respondsToSelector(interactivePopGestureRecognizer)]) 
       self.navigationConroller.interactivePopGestureRecognizer.enabled = YES;
       self.navigationController.interactivePopGestureRecognizer.delegate = self;
   

这段代码在每个推送/弹出视图控制器的生命周期中被调用。如果滑动操作完成,手势识别器将正常工作。但是,如果发生部分滑动,视图控制器会显示正确的视图,但导航栏会错位/显示较早的视图控制器导航栏。我正在使用自定义左右导航栏项目,而不是后退按钮。 我还尝试将代码放在不同的生命周期方法中,例如 viewDidLoad,甚至尝试将委托设置为导航控制器本身。但结果并没有改变。我尝试在 SO 上搜索类似问题,但找不到正确的响应。我确实找到了一个链接,该链接说问题可能是因为直接在代码中调用生命周期方法(viewDidAppear、viewWillAppear)。但是应用程序中没有这样的直接方法调用。其他链接提到了自定义 leftBarButtonItem 的问题。 任何帮助表示赞赏。

【问题讨论】:

谁能帮帮我? 【参考方案1】:

您是否忘记为推送到导航控制器的视图控制器子类调用 [super viewWillAppear] 或类似名称。似乎记得这可能会导致您描述的问题。如果不调用超适当的布局方法,则不会在导航项/栏上调用。

【讨论】:

我不这么认为。我有一个基本视图控制器类,它通过超级调用正确实现所有生命周期方法。派生类也可以正确调用 super。【参考方案2】:

我遇到了一个类似的问题,其中部分滑动离开了当前视图(称为 A)与较早的(堆栈中较低的)视图控制器的导航栏(称为 B)。我通过在 viewDidAppear 方法以及 viewcontroller A 的 viewWillAppear 方法中包含配置导航栏的代码来解决它。看起来很尴尬,但是在部分滑动后返回 A 时它恢复了 viewcontroller A 的导航栏。对于它的价值,我发现这只是 tableviewcontrollers 的问题,而不是标准 UIViewControllers 的问题。

【讨论】:

io模型--阻塞io,非阻塞io,io多路复用,异步io(代码片段)

IO模型介绍:*blockingIO阻塞IO*nonblockingIO非阻塞IO*IOmultiplexingIO多路复用*signaldrivenIO信号驱动IO()*asynchronousIO异步IO IO模型介绍: 为了更好地了解IO模型,我们需要事先回顾下:同步、异步、阻塞、非阻塞   同步(synchrono... 查看详情

io复用阻塞io非阻塞io同步io异步io

转载:IO复用阻塞IO非阻塞IO同步IO异步IO一、什么是IO复用?它是内核提供的一种同时监控多个文件描述符状态改变的一种能力;例如当进程需要操作多个IO相关描述符时(例如服务器程序要同时查看监听socket和大量业务socket是否... 查看详情

五种io模型

本篇了解一下常见的IO模型:阻塞IO、非阻塞IO、信号驱动IO、异步IO通常用户进程一个完整IO包括两个阶段:用户进程空间<->内核空间,内核空间<->设备空间(网络/磁盘)。IO有内存IO、磁盘IO、网络IO,通常所说的IO是指... 查看详情

iOS 自动布局 ios 7 与 ios 8

】iOS自动布局ios7与ios8【英文标题】:iOSautolayoutios7vsios8【发布时间】:2015-04-0617:28:39【问题描述】:ios7和ios8的自动布局到底有哪些改进?我的应用在ios8中运行良好,但在ios7中有不同的行为。多次加载视图后,约束在ios7中中断... 查看详情

内存映射 io 和 io 映射 io 有啥区别

】内存映射io和io映射io有啥区别【英文标题】:whatisthedifferencebetweenmemorymappedioandiomappedio内存映射io和io映射io有什么区别【发布时间】:2011-04-2220:57:56【问题描述】:请解释一下内存映射IO和IO映射IO的区别【问题讨论】:这似乎... 查看详情

同步io异步io阻塞io非阻塞io之间的联系与区别

文章目录POSIXIO模型阻塞IO模型非阻塞IO模型IO复用模型信号驱动IO模型异步IO模型总结POSIXPOSIX(可移植操作系统接口)把同步IO操作定义为导致进程阻塞直到IO完成的操作,反之则是异步IO按POSIX的描述似乎把同步和阻塞划等号࿰... 查看详情

四种io模型‘阻塞io/非阻塞io/信号驱动io/异步io‘(代码片段)

目录:1、阻塞IO2、非阻塞IO3、信号驱动IO4、异步IOIO过程:等待IO就绪,数据拷贝1、阻塞IO若IO条件不具备,一直等待流程简单,效率低图解:2、非阻塞IOIO条件不具备,直接报错返回相较于阻塞IO,... 查看详情

详解--高级io(代码片段)

文章目录前言一、五种IO模型阻塞IO非阻塞IO信号驱动IOIO多路转接:异步IO二、高级IO同步通信和异步通信阻塞VS非阻塞其他高级IO三、非阻塞IOfcntl实现函数SetNoBlock总结前言理解五种IO模型的基本概念.重点是IO多路转接.正文开始!一... 查看详情

iOS 8、iOS 9、iOS 10 和 iOS 11 上的 UITabBar 的高度是多少?

】iOS8、iOS9、iOS10和iOS11上的UITabBar的高度是多少?【英文标题】:What\'stheheightofaUITabBaroniOS8,iOS9,iOS10,andiOS11?【发布时间】:2014-10-2210:27:26【问题描述】:UITabBar的高度似乎在iOS7和8/9/10/11之间发生了变化。我发布这个问题是为了让... 查看详情

并发编程-io模型-1.io模型/2.阻塞io/3.非阻塞io/4.多路复用io

1.io模型提交任务得方式:同步:提交完任务,等结果,执行下一个任务异步:提交完,接着执行,异步+回调异步不等结果,提交完任务,任务执行完后,会自动触发回调函数同步不等于阻塞:阻塞:遇到io,自己不处理,os会抢... 查看详情

io() 和 io.connect() 使用 socket.io 的区别

】io()和io.connect()使用socket.io的区别【英文标题】:Differencesbetweenio()andio.connect()usingsocket.io【发布时间】:2018-01-1306:18:02【问题描述】:我想知道两者有什么区别varsocket=io();和varsocket=io.connect();在我的脚本中使用socket.io(客户端)... 查看详情

四种io模型

四种IO模型目录:一.什么是IO?二.阻塞IO三.非阻塞IO四.信号驱动IO五.异步IO目录:一.什么是IO?对于IO的简单理解,我们首先通过两个数据之间的交互过程来理解什么是IO?向上面这样数据从对应的发送缓冲区发送到对应的接受缓冲区的过... 查看详情

四种io模型

四种IO模型目录:一.什么是IO?二.阻塞IO三.非阻塞IO四.信号驱动IO五.异步IO目录:一.什么是IO?对于IO的简单理解,我们首先通过两个数据之间的交互过程来理解什么是IO?向上面这样数据从对应的发送缓冲区发送到对应的接受缓冲区的过... 查看详情

同步io,异步io,阻塞io,非阻塞io的联系与区别

转载POSIX同步IO、异步IO、阻塞IO、非阻塞IO,这几个词常见于各种各样的与网络相关的文章之中,往往不同上下文中它们的意思是不一样的,以致于我在很长一段时间对此感到困惑,所以想写一篇文章整理一下。POSIX(可移植操作... 查看详情

并发编程-io模型-1.io模型/2.阻塞io/3.非阻塞io/4.多路复用io(代码片段)

1.io模型提交任务得方式:同步:提交完任务,等结果,执行下一个任务异步:提交完,接着执行,异步+回调异步不等结果,提交完任务,任务执行完后,会自动触发回调函数同步不等于阻塞:阻塞:遇到io,自己不处理,os会抢... 查看详情

42---io模型(代码片段)

目录一IO模型1.1网络IO模型有很多,它们都是为了解决一个问题:减少IO等待时间,提高计算机效率1.2IO发生时涉及到的两个对象:1.3产生IO的行为二网络IO模型2.1阻塞IO2.2非阻塞IO2.3多路复用IO2.4异步IO三总结参考博客:https://www.cnbl... 查看详情

四种io模型

四种IO模型目录:一.什么是IO?二.阻塞IO三.非阻塞IO四.信号驱动IO五.异步IO目录:一.什么是IO?对于IO的简单理解,我们首先通过两个数据之间的交互过程来理解什么是IO?向上面这样数据从对应的发送缓冲区发送到对应的接受缓冲区的过... 查看详情

io() 函数前端——socket.io

】io()函数前端——socket.io【英文标题】:Io()functionfrontend-socket.io【发布时间】:2017-04-1612:13:20【问题描述】:我不明白当我将io()函数调用到index.html时,nodejs怎么可能知道必须执行io.on()函数。我知道index.html中的io()函数用于打开... 查看详情