苹果系统升级后好多应用都发了新版本来适配,今天就来分享一下我的适配历程。

首先是出现的问题:

  1.push一个控制器,返回按钮和标题神奇的消失了,打开三维视图(比较坑的是有的版本老到打不开三维视图 ),发现返回按钮和标题并没有消失,而是被一层视图挡到了。

  2.有文本输入的地方,在iOS10中文本框也消失了,导致无法输入内容。

  3.权限问题。

其次是解决思路:

  1.顶层被莫名其妙的加了一层视图,感觉是自定义的导航栏的背景视图的层次出问题了,所以查看了自定义的导航栏,但是并没有,后来问了问,有一个应急的解决办法,就是给导航栏设置背景色,颜色取背景图片的颜色,在每一个用到该导航栏的试图控制器的viewWillAppear方法中重新设置一下导航栏,在viewWillDisappear里也重新设置一下。

  但是上面的方法仅适用于导航栏颜色为纯色,,所以为了更灵活,还有另一种方法,就是在viewWillAppear和viewWillDisappear方法里先将视图控制器的导航栏隐藏然后再显示

  

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

  

  第一次看到上面的代码时,我也跟你一样感到诧异,可是神奇的是它确实奏效了。

  为什么呢?简书的一位作者写过类似的博客,里面提到的原因是“iOS10在加载导航栏是总会加载系统的”。如果他说得对的话,也就是说push时系统会将自带的导航栏置顶,而隐藏后再显示只会显示自定义的导航栏。

  可是问题又来了,如果每一个视图控制器都加了上面的代码也是有问题的,问题是如果某视图控制器不需要继续push,那么该视图控制器会不能很好地适配iOS10,有时会返回到修改前的状态。解决方法是在进入该视图时判断是否需要跳转,如果需要继续跳转,则加上上面的代码,否则屏蔽掉。

  2.此处现在已知的方法是重新建立xib文件。

  3.iOS10 中某些权限是必须要加的

(参考:http://blog.csdn.net/wang631106979/article/details/52578001),

例如程序要拍照:Privacy - Camera Usage Description,

    麦克风:Privacy - Microphone Usage Description,

    定   位:Privacy - Location When In Use Usage Description,

    日   历:Privacy - Calendars Usage Description

******

后面的内容与标题无关 推广下个人开发的APP 觉得还不错的 自己自己偷偷用就行了

密码口袋

转载于:https://www.cnblogs.com/PaulpauL/p/6017817.html

iOS10 的适配问题,你遇到了吗?导航栏标题和返回按钮神奇的消失了相关推荐

  1. ios开发返回按钮消失_iOS10 的适配问题,你遇到了吗?导航栏标题和返回按钮神奇的消失了...

    苹果系统升级后好多应用都发了新版本来适配,今天就来分享一下我的适配历程. 首先是出现的问题: 1.push一个控制器,返回按钮和标题神奇的消失了,打开三维视图(比较坑的是有的版本老到打不开三维视图 ) ...

  2. 全面屏适配方案,终极版,华为隐藏导航栏解决方案

    全面屏适配方案,终极版,华为隐藏导航栏解决方案 参考文章: (1)全面屏适配方案,终极版,华为隐藏导航栏解决方案 (2)https://www.cnblogs.com/lizhanqi/p/93371 ...

  3. 适配iOS 11和iPhone X——导航栏、UITableView

    每年的WWDC大会都激动和紧张好一段时间.激动的是期待苹果的新产品带来的那些黑科技,尤其今年的iPhone10周年纪念款iPhone X.紧张的当然是iOS.Swift和Xcode的升级,又要加班了( ...

  4. 微信小程序 - 自定义头部导航栏组件(详解) + iphoneX以上遮挡小黑条适配问题

    1. 导航栏计算: 导航栏总高度=状态栏高度+胶囊高度+(胶囊距顶距离-胶囊高度)*2 navHeight = statusBarHeight + menuButtonObject.height + ...

  5. 微信小程序自定义导航栏机型适配--底部Tabbar--view高度--底部按钮适配

    自定义微信小程序头部导航栏 自定义微信小程序头部导航栏,有几种方式 方式一 {"navigationStyle": "custom" // 将navigatio ...

  6. iOS11导航栏适配

    部分总结; (一)导航栏高度的变化 (1) iOS11之前导航栏默认高度为44pt(这里高度指NavigationBar); (2) iOS11之后如果设置了大标题样式, 则为96pt,默认情况下还是 ...

  7. iOS10 CAAnimationDelegate适配引申到条件编译

    2019独角兽企业重金招聘Python工程师标准>>> 本文将围绕2个问题展开. - iOS10 CAAnimationDelegate适配 - 条件编译 1.iOS10 CAAni ...

  8. iOS开发之iOS10简单适配

    前言 今年6月初的WWDC大会上亮相了iOS10,很多开发者开始了对iOS10的适配,其中也包括Xcode8的一些改变.现在记录一些关于Xcode8适配的一些知识.然后在记录iOS10的适配. 1.X ...

  9. android自适应拉伸图片,Android 启动页-解决图片被拉伸和压缩问题,适配虚拟导航栏...

    Android 启动页设置非常简单 //styles.xml 设置主题 @drawable/bg_splash true //activity使用主题,这时点击app图标,就会显示@drawable/ ...

最新文章

  1. 两个主键怎么设置tsql_索引该怎么创建?
  2. windows连接linux系统telnet端口23无法连接的问题
  3. 中小型制造企业如何玩转MES系统?
  4. 行进位,超前进位 ,行波进位 ,并行进位有什么区别
  5. 如何防止在listbox中添加很多数据出现不停的刷新
  6. Java内存模型 - 同步八种操作
  7. 字节高工强推 “Android学习视频教程631部,文末有链接哦”
  8. 测井曲线fft matlab,Matlab编程实现FFT实践及频谱分析
  9. 机械工程matlab课程设计,浅论MATLAB在机械课程设计中的应用方法和技巧
  10. deepin 开启root权限
  11. Android EditText与软键盘
  12. 怎样用计算机制作思维导图,思维导图怎样画?分享电脑绘制思维导图方法
  13. 【Ubuntu系统下百度Apollo7.0与LGSVL2021.3联合教程(亲测有效)】
  14. trainning 2017-11-21
  15. java 的安全管理器
  16. 2017 百度之星 复赛 Valley Numer(数位dp)
  17. matlab中 %d,%f,%c,%s代表什么意思
  18. throw new Error() 真实的用法和throw error 的却别
  19. 网络留言系统(Javaweb简易开发)
  20. UVA:10118 Free Candies

热门文章

  1. java获取公网ip_动态IP变固定IP,国内IP变海外IP,助力企业数据传输提高工作效率...
  2. git checkout 远程分支_git的远程分支是干啥的,和本地的有什么区别?
  3. HTML布局是外边距咋表示,布局 页面设置百分比 子元素如何设置外边距?
  4. android平台java编程规范_Android Java类编写规范+优化建议
  5. 宏观经济学思维导图_10.19 [国际经济学][概率论与数理统计]笔记
  6. python怎么导入数据集keras_python – 如何为Keras准备数据集?
  7. 关于Date类型、时间戳格式转换方法
  8. 使用echarts(四)定时刷新图表
  9. FinalShell SSH工具下载
  10. java并发编程 博客_JAVA并发编程常识