美文网首页iOS开发
iOS 解决侧滑返回到一半取消时,导航栏出现三个蓝色小点的问题

iOS 解决侧滑返回到一半取消时,导航栏出现三个蓝色小点的问题

作者: 明若晴空 | 来源:发表于2019-01-15 18:35 被阅读8次

    问题描述:

    从一个没有左右按钮,只有自定义的titleView的界面A向右侧滑返回上一级页面B时,在向右侧滑过程中,滑动到一半放弃滑动返回时,页面A的左侧按钮正下方或标题正下方会多出几个小点。

    1、解决方法一:

    self.navigationController.navigationBar.topItem.title = @"";
    self.navigationController.navigationBar.backItem.title = @“";
    

    这种方法会导致侧滑返回后,上一级的页面B的title也跟着消失了。

    2、解决方法二:

    - (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];
    }
    

    进入页面A时隐藏导航栏,页面A消失时显示导航栏,这种方法会导致侧滑返回失效。

    3、解决方法三:

    - (void)viewWillAppear:(BOOL)animated
    {
        [super viewWillAppear:animated];
        self.navigationController.interactivePopGestureRecognizer.enabled = NO;
    }
    - (void)viewWillDisappear:(BOOL)animated
    {
        [super viewWillDisappear:animated];
        self.navigationController.interactivePopGestureRecognizer.enabled = YES;
    }
    

    这种方法是禁用了该页面A的滑动返回
    这种方法没有解决实际问题,只是避免了问题的发生。
    继续研究,这个方法只能作为备选

    4、解决方法四

        self.navigationController.navigationBar.tintColor = [UIColor colorWithHexValue:0xf6f8fb];
    

    设置导航栏的tintColor和背景色一致,这样即使多出三个点也看不出来。
    这个方法会导致导航栏中的搜索框的光标也跟着变色,因此还需要多一步设置将搜索框的光标颜色设置为自己想要的颜色。
    这个方法,也没有从根本上解决问题,但是在不影响原有功能的基础上比较好的避免了问题。

    相关文章

      网友评论

        本文标题:iOS 解决侧滑返回到一半取消时,导航栏出现三个蓝色小点的问题

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