iOS 解决导航栏pop返回时出现黑块问题!

问题描述:

导航栏正常从A页面push到B页面,从B页面pop返回A页面时遇到过渡过程中导航栏出现黑块的问题。

如截图所示:

问题原因:

A界面导航栏被影藏,B页面的导航栏存在。过渡的时候没有动画。

解决方案:

1.在A页面中添加影藏导航过渡动画

override func viewWillAppear(_ animated: Bool) {super.viewWillAppear(animated)self.navigationController?.setNavigationBarHidden(true, animated: true) //避免的出现返回时导航栏的黑块
}
override func viewWillDisappear(_ animated: Bool) {super.viewWillDisappear(animated)self.navigationController?.setNavigationBarHidden(false, animated: true)      }

注意:如果使用self.navigationController.isNavigationBarHidden = true 就会出现黑块问题。 如果A页面在tableViewController中,切换tab时就有可能导致该界面闪动。

优点,不用在自push中再去设置每一个过渡

2.在B页面添加过渡动画

override func viewWillDisappear(_ animated: Bool) {super.viewWillDisappear(animated)self.navigationController?.setNavigationBarHidden(true, animated: true)}

缺点:在每一个子页面(包括子页面的子页面)中都需要设置

2.设置window的背景颜色为主题色,这样就不会出现黑块,但是还是会出现分层和界面不协调的问题。不建议使用

iOS 解决导航栏pop返回时出现黑块问题!相关推荐

  1. IOS设置导航栏返回按钮,并添加事件返回主页面

    IOS设置导航栏返回按钮,并添加事件返回主页面 前提是已经push了一个viewController了.才能使用. XXXTableViewController 里面书写 - (void)viewDi ...

  2. 导航栏加载时可能出现闪的原因以及解决办法

    元素闪烁很丑,难解决. 修改 Class 而不是 Style 我在不久前做过一个导航栏,要求其滚动到屏幕顶端后固定.很常见.开始的时候没问题,很快就可以搞定. nav {position: absol ...

  3. 一次性解决导航栏的所有问题

    系统默认导航栏的返回按钮和返回方式 在默认情况下,导航栏返回按钮长这个样子 导航栏默认返回按钮 导航栏左上角的返回按钮,其文本默认为上一个ViewController的标题,如果上一个ViewCont ...

  4. ios 添加导航栏视图_iOS进度栏(进度视图)

    ios 添加导航栏视图 In this tutorial, we'll be discussing the UIProgressView component and create a progress ...

  5. IOS设置导航栏的背景图片和文字

    IOS设置导航栏的背景图片和文字 - (void)viewDidLoad {[super viewDidLoad];[self.navigationBar setBackgroundImage:[UI ...

  6. 解决导航栏按钮背景色切换,刷新页面,按钮背景色切换,页面和路径没有切换问题

    解决导航栏按钮背景色切换,刷新页面,按钮背景色切换,页面和路径没有切换问题 上篇博文中 点击导航栏切换背景色 有一个bug,如果点击第二个或者后面几个按钮,再刷新页面,按钮背景色会跳到第一个按钮上去, ...

  7. iOS11解决导航栏影藏返回文字的方法

    iOS11适配 : iOS适配工作 需求 如果要只保留返回按钮的文字,不需要"返回"文字 iOS11之前 在全局函数执行的地方使用一下代码: let barButton = UIB ...

  8. iOS之给WebView导航栏添加“返回”与“关闭”按钮

    一.需求说明 在iOS开发中,不免有原生与H5的交互,比如说:从原生页面的一个按钮,点击之后跳转到了一个H5的页面A,A页面中又有一个按钮,点击之后,又加载了一个新的H5页面B,从B点击一个按钮,又加 ...

  9. IOS 自定义导航栏标题和返回按钮标题

    IOS中自定义导航栏标题: UILabel *titleText = [[UILabel alloc] initWithFrame: CGRectMake(160, 0, 120, 50)]; tit ...

最新文章

  1. -bash:syntax error near unexpected token '('
  2. windows 常用命令
  3. 【Codeforces】1136C Nastya Is Transposing Matrices (矩阵转置)
  4. Chosen中选择项的更新
  5. 【组合数学】生成函数 ( 正整数拆分 | 无序 | 有序 | 允许重复 | 不允许重复 | 无序不重复拆分 | 无序重复拆分 )
  6. “三通一达”创始人均来自桐庐 有的村人均GDP上亿
  7. 改造消费方解决地址硬编码问题
  8. PHP易混淆函数的区分方法及意义
  9. 三星sd卡无法删除数据_单反相机里的SD卡在电脑中突然无法识别提示要格式化怎么办?...
  10. nodejs_NodeJS历险记
  11. Arcgis创建SDE_Geometry、SDO_Geometry的区别【转】
  12. PHP中Cookie和Session的对比
  13. zookeeper 客户端配置_ZooKeeper安装配置如何操作
  14. 2022年春运火车票明起开卖
  15. X86 register
  16. 代理设置(wget/yum)
  17. 正确区分LJMP、AJMP、SJMP、JMP指令()
  18. MATLAB图像处理学习日记之图像的自定义裁剪imcrop操作
  19. 2022年6月少儿编程等级测试来了
  20. 人工智能(AI)真的会带来大规模失业吗?

热门文章

  1. 全球第三的晶圆代工厂 也要被卖了?
  2. MySQL数字辅助表
  3. wince中对ini文件的操作
  4. 微软企业库配置工具菜单Edit Enterprise Library V5 Configuration
  5. XFCE字体发虚的解决方法
  6. windows-台式机添加硬盘后如何加载、格式化新的分区
  7. 软件随想: 软件 = 程序 + 软件工程
  8. 转载:为什么使用ibatis而不用spring jdbcTemplate
  9. Deploying Windows Mobile 6 with Exchange Server 2007 白皮书
  10. IT 学习资料 大全