2 l2i2j2 l2i2j2 于 2016.04.07 23:12 提问

iOS导航栏隐藏后出现BUG

一共有①②③三个页面,①push②,②push③。
正常左上角返回没有问题。
当加上边缘滑动返回时,③pop②,②pop①。
如果三个页面都显示导航栏也没有问题。

我这里①是隐藏导航栏的,②③是显示导航栏的。这样就会出BUG了。
当从②左侧边缘往右滑动时,如果只是稍微动一下,而没有返回到①
(就是露出一点①页面之后,赶紧往往左滑,确保还停留在②页面)
这时就出问题了,②页面的导航栏没了,③的也没了。

这时只要返回到①页面重新进入就行了。如果说这个BUG影响不大。
但是还是存在一个更严重的BUG,这个着实令我着急啊。
当出现上面这个BUG后,重新从①进入②,没问题。
接着从②进入③,③的title就变成了②的title,③左上角的返回按钮也不管用了,导航栏出现严重的错乱。

有知道这个问题怎么破的吗?(这是苹果的问题,还是我哪里写的不对啊?)

12个回答

CSDNXIAON
CSDNXIAON   2016.04.07 23:22
已采纳

iOS 如何隐藏导航栏
iOS 隐藏导航栏
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

l2i2j2
l2i2j2 还是机器人厉害,就是这个问题,现在解决了。加上动画效果就行了,厉害。
一年多之前 回复
u014479195
u014479195   2016.04.07 23:29

你考虑下交互性的问题

l2i2j2
l2i2j2 啥意思,能详细点吗?
一年多之前 回复
recal123
recal123   2016.04.08 01:16

你的隐藏显示导航栏的代码应该是写在viewWillAppear里的吧
当2界面侧滑一点点的时候 系统会自动调用1界面的viewWillAppear 你可以打断点看一下 因此导航栏消失了.
解决的方法可以有很多,打断点看下在侧滑时 各界面viewwillApear viewdidappear viewwilldisappear viewdiddisappear 的调用情况.
知道问题在哪就好解决了

l2i2j2
l2i2j2 已经解决问题了,隐藏方式不用点语法,换成set方法就行了,set方法有animated,把它设置成YES就没有这个BUG了。
一年多之前 回复
l2i2j2
l2i2j2 只能解决第一个BUG,没改变他的本质,第三个页面的title还是不对。。。
一年多之前 回复
gbb123456
gbb123456   2016.04.08 17:00

你的隐藏导航栏的代码是不是self.navigationController.navigationBarHidden = YES;如果是的话,换成self.navigationController.navigationBar.hidden = YES;试一下。第一种隐藏导航栏的代码只对本控制器起作用。

l2i2j2
l2i2j2 我要的就是只对本控制器隐藏,我不想让他影响到后面的,看来你都没看明白我说的什么。。。不过我已经解决了,是隐藏方式不对,不应该用点语法,换成set方法就行了,set方法有animated,把它设置成YES就没有这个BUG了。
一年多之前 回复
qq_30075875
qq_30075875   2016.04.08 23:39

在VC的生命周期方法加断点看看方法的调用是什么样的,都执行了啥方法,然后你就明白了。苹果sdk没有问题的,兄弟

l2i2j2
l2i2j2 苹果sdk没有问题,呵呵。
一年多之前 回复
qq_34616940
qq_34616940   2016.04.11 11:38

这个问题我遇到过,需要在界面1的viewWillAppear 隐藏导航栏 在界面23的viewWillAppear 显示导航栏

l2i2j2
l2i2j2 回复qq_34616940: 什么东东,一行代码搞定你还要用第三方?
一年多之前 回复
qq_34616940
qq_34616940 试一试FDFullscreenPopGesture
一年多之前 回复
l2i2j2
l2i2j2 必须加动画
一年多之前 回复
l2i2j2
l2i2j2 这只能解决第一个BUG,第二个BUG还是存在,不信你创建个工程,写几行代码试试。
一年多之前 回复
u011864662
u011864662   2016.04.15 00:26

这个都是在生命周期隐藏的,不知道你怎么操作的

l2i2j2
l2i2j2 废话,你写的所有代码,有一句不是在生命周期里完成的吗?你想说什么呢。。。
一年多之前 回复
oDream_tjl
oDream_tjl   2016.05.09 16:21

楼主解决了这个问题了嘛?我最近也碰到这个问题

l2i2j2
l2i2j2 就是多了一个animated,就解决了。不用动画过渡就出问题。
一年多之前 回复
l2i2j2
l2i2j2 我在前面说的很详细了,你们怎么总是问啊。。。用[self.navigationController setNavigationBarHidden:YES animated:YES];不要用self.navigationController.navigationBarHidden = YES;
一年多之前 回复
u011124078
u011124078   2016.05.25 17:44

楼主问题解决了么?我也遇到了这个问题,并且不是经常会遇到,只是偶尔会遇到。

qq_30347079
qq_30347079 楼主的第二个问题我也是偶尔遇到,但是在项目的关键位置,很头疼,请问你解决了么
一年多之前 回复
l2i2j2
l2i2j2 我在前面说的很详细了,你们怎么总是问啊。。。用[self.navigationController setNavigationBarHidden:YES animated:YES];不要用self.navigationController.navigationBarHidden = YES;
一年多之前 回复
qq_30347079
qq_30347079   2016.06.23 09:45

楼主,你的第一个问题解决了,第二个问题解决了么?我也遇到了,有时候第三个导航会变成第二个的

l2i2j2
l2i2j2 你要我说几遍你才能看见啊。。。你找到问题不会看看别人的回答啊???再告诉你一遍吧。。。用[self.navigationController setNavigationBarHidden:YES animated:YES];不要用self.navigationController.navigationBarHidden = YES;
一年多之前 回复
qq_30347079
qq_30347079 而且第二个问题出现的概率比较低,偶尔出现很头疼,还是在项目的关键位置,求楼主指导
一年多之前 回复
共12条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!