美文网首页
导航栏隐藏的坑

导航栏隐藏的坑

作者: 对酒当歌的夜 | 来源:发表于2016-11-28 15:46 被阅读61次

ps:记录遇到的一个坑
某个VC push到另一个VC1要求VC1全屏显示(隐藏导航栏)这时候先隐藏

  • (void)viewWillAppear:(BOOL)animated
    {
    [super viewWillAppear:animated];
    [self.navigationController setNavigationBarHidden:YES ];
    }
    取消隐藏
    -(void)viewWillDisappear:(BOOL)animated
    {
    [super viewWillDisappear:animated];
    [self.navigationController setNavigationBarHidden:NO ];

}
ps:当前的VC隐藏了导航栏,系统默认会取消当前页的右滑返回手势
使用这个就好了:
self.navigationController.interactivePopGestureRecognizer.delegate = (id) self;
这样基本完成,有一个隐藏的坑当你右滑这个VC滑到一半又左滑(比如反悔了不想回到上一页了)这个时候在去其他的页面push的时候就出bug了,上一级的rightBarButtonItems会跟着一起带过来,

h66666633.gif

//ps:橙色的页面本来是没有跳转按钮的,经过暗红色的那个滑动到一半放回去在跳过去就出现跳转两个字了..就是说页面2(橙色的)本来是没有那红色的跳转按钮的, 当我在某个没有导航栏的VC里面滑动一半在放回去, 这时候在push到其他页面就出问题了

这个解决办法就是使用以下代码

  • (void)viewWillAppear:(BOOL)animated
    {
    [super viewWillAppear:animated];
    [self.navigationController setNavigationBarHidden:YES animated:animated];
    }
    -(void)viewWillDisappear:(BOOL)animated
    {
    [super viewWillDisappear:animated];
    [self.navigationController setNavigationBarHidden:NO animated:animated];
    }
    就是加了两个动画手动滑动的时候导航栏是跟着一起的
    5F5E5821-6C22-42F9-8561-35E0B05C55F3.png
    2B5187CF-FCF7-43D5-BF8E-7CFF31280DC8.png
    这是他们的区别,后来想想没有动画的情况滑动一半那个导航栏已经出现了,这时候放回去就会出现未知的bug
    感谢这篇文章让我 想到问题原因【链接】导航栏显示和隐藏的坑
    http://www.jianshu.com/p/60e2369bbe0e

相关文章

网友评论

      本文标题:导航栏隐藏的坑

      本文链接:https://www.haomeiwen.com/subject/zkyopttx.html