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

释放双眼,带上耳机,听听看~!

问题描述:

从一个没有左右按钮,只有自定义的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文章

Unable to preventDefault inside passive event listener

2019-10-8 21:06:20

iOS文章

iOS开发规范

2019-10-9 8:26:19

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
有新消息 消息中心
搜索