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

导航栏隐藏的坑

作者: 对酒当歌的夜 | 来源:发表于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