一、 iOS 连续多次 Present VC,dismiss 之后可能异常

记住: 谁present 谁dismiss。
我们习惯都是在presented VC直接dismiss的,一般不会出现问题,但是多次present之后,在dismiss可能就会出现异常。 官方给出的属性解释:

// The view controller that was presented by this view controller or its nearest ancestor.
@property(nullable, nonatomic,readonly) UIViewController *presentedViewController  NS_AVAILABLE_IOS(5_0);// The view controller that presented this view controller (or its farthest ancestor.)
@property(nullable, nonatomic,readonly) UIViewController *presentingViewController NS_AVAILABLE_IOS(5_0);
复制代码

presentingViewController dismissViewControllerAnimated: 就不会出现异常了。

二、设置navigationItem.left/rightBarButtonItem 异常

如果不是特殊情况,能用系统方法直接搞定的,强烈推荐用系统方法(UIBarButtonItem)设置。 举个栗子:

//类似这种直接设置initWithImage/initWithTitle
UIBarButtonItem *scanButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"scan_code"] style:UIBarButtonItemStylePlain target:self action:@selector(pushScanController)];
self.navigationItem.leftBarButtonItem = scanButton;
复制代码

用系统方法简单,而且不用调整边距,所有边距都一样;用自定义View方法(initWithCustomView:),可能要调整边距等问题产生。 注意: 如果复杂的要自定义view方法设置self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:customView]; 如果customView 是UIButton,在iOS 11系统以下,必须要设置UIButton的frame,否则不会显示出来。在iOS 11系统可以不设置UIButton的frame,系统会根据你设置的Button图片或是文本自适应一个frame。 由于一直在iOS 11系统上开发,忘记了设置frame,也显示正常,导致在其他系统上出现了这样一个BUG。 #####最近开发又遇见了一个问题:使用系统的方法initWithImage设置一个BarButtonItem。但是这Item可能不显示,因此就这么设置了一下: barButtonItem.image = nil; 就是这句话导致在iOS 11系统以下不能显示了。 解决办法: barButtonItem.image = [UIImage New]; 也是由于没有设置frame方法导致的。

三、打包上传Error汇总

打包上传异常原因汇总

四、彻底删除NSUserDefaults方法

    NSString *appDomain = [[NSBundle mainBundle] bundleIdentifier];[[NSUserDefaults standardUserDefaults] removePersistentDomainForName:appDomain];
复制代码

五、重置苹果测试设备数量限制方法

发邮件方法 唐巧围脖

六、国际化适配UI

国际化有的国家习惯从左到右,而有的国家习惯从右到左。 在iOS 9之后,苹果大大已经为我们做了UI适配。在我们使用约束布局的时候,使用leading和trailing而不用left和right。即可自动实现左右切换。 但是我们不想让它按着国家左右切换呢,直接强制写死方向: 只在iOS 9系统以后生效: 设置这个属性,强制确定方向即可。

    if ([[UIDevice currentDevice].systemVersion floatValue] > 9.0) {[UIView appearance].semanticContentAttribute = UISemanticContentAttributeForceLeftToRight;}
复制代码

参考文章:iOS冷门知识点 苹果官方文档

iOS开发实战小知识点(四)相关推荐

  1. iOS开发实战小知识点(五)——获取JS meta异常

    ####在开发中遇见一个问题: 获取H5某个meta的值,在iOS 10(包括)系统以上可以正常获取,但是在iOS 10系统以下获取meta值返回为nil. #####代码如下: NSString * ...

  2. Xamarin iOS开发实战第1章使用C#编写第一个iOS应用程序

    Xamarin iOS开发实战第1章使用C#编写第一个iOS应用程序 C#原本是用来编写Windows以及Windows Phone的应用程序.自从Xamarin问世后,C#的作用就发生了很大的变化. ...

  3. Android项目开发实战常用知识点

    Android项目开发实战常用知识点 一:启动页延时两秒再跳转到主界面: //执行类 private class SlpashRunnable implements Runnable {@Overri ...

  4. 小米手环iOS开发实战(二):开发Demo让你的手环振动起来

    小米手环iOS开发实战(二):开发Demo让你的手环振动起来 上一节讲了CoreBluetooth的使用,理论知识很枯燥,那么现在先利用上一节讲的内容,做一个简易手环应用,实现连接/断开手环,查看手环 ...

  5. Xamarin iOS开发实战1.1.3Xamarin版本

    Xamarin iOS开发实战1.1.3Xamarin版本 Xamarin提供了免费版和付费版.免费版本包含Xamarin Studio服务.付费版本分为普通版299美元/年.商业版999美元/年和企 ...

  6. Xamarin iOS开发实战中册 (内部资料)C#苹果应用开发

    Xamarin iOS开发实战中册 (内部资料)C#苹果应用开发 Xamarin iOS开发实战中册 (内部资料)C#苹果应用开发 试读样章下载地址:http://pan.baidu.com/s/1j ...

  7. Xamarin iOS开发实战上册-----2.2.2 使用代码添加视图

    Xamarin iOS开发实战上册-----2.2.2  使用代码添加视图 如果开发者想要使用代码为主视图添加视图,该怎么办呢.以下将为开发者解决这一问题.要使用代码为主视图添加视图需要实现3个步骤. ...

  8. Xamarin iOS开发实战上册(内部资料daxueba.net)

    Xamarin iOS开发实战上册(内部资料daxueba.net) 试读样章下载地址:http://pan.baidu.com/s/1mgqQIxE 第2章  用户界面--视图 在iPhone或者i ...

  9. Xamarin iOS开发实战(内部资料)

    Xamarin iOS开发实战 (内部资料) 介绍:本教程是国内Xamarin针对iOS 9开发的唯一教程.本教程针对Mac OS X10.11/Windows 10两种系统平台,讲解如何使用Xama ...

最新文章

  1. 模拟生态系统-自己编写生命
  2. C# winform combobox 在绑定数据之后插入一项选择项
  3. 《悦趣式连锁反应》玩转STEM教育!529块积木元件,N+1款炫酷模型
  4. 资深工程师为何否定这种单例模式
  5. 京解之才——2019年技术盘点微服务篇(三)| 程序员硬核评测
  6. 公有云网络服务需要考虑的关键点
  7. Intel Core Enhanced Core架构/微架构/流水线 (7) - 栈指针跟踪器/微熔合
  8. php时间戳源码,php格式化时间戳
  9. python 写一个计算器_Python | 写个计算器吧
  10. 全国航空机场分布矢量数据/旅游景点poi/全国港口码头分布/地铁站分布/火车站分布/2020年POI矢量数据
  11. 基于Java swing实现的学生选课管理系统
  12. 【Windows】VMware虚拟机安装Windows 10 教程
  13. [转] Redefining the shading languages ecosystem with SPIR-V
  14. 英语:逆向忠言(转载)
  15. 仅需三个步骤,即可将wps转换成word
  16. APP 微信支付java后台代码(解决支付失败返回-1)
  17. Codeforces1541B Pleasant Pairs (思维)
  18. linux下的go富集分析,GO富集分析(转载)-Go语言中文社区
  19. 在chromium内不能激活fcitx输入法
  20. torch-fidelity 简便计算FID,ISC,KID,PPL

热门文章

  1. Android 打造编译时注解解析框架
  2. FoundationDB 学习 - 事务流程
  3. 魅族MX4关闭系统升级Flyme6提示
  4. 模拟利器Mockito
  5. 什么是Hadoop,怎样学习Hadoop
  6. 使用Xshell密钥认证远程登录linux
  7. Android开发小结Part2:目录
  8. DATE_FORMAT、when case函数用法
  9. activex控件方法和事件
  10. C++根据.h文件批量生成需要的函数框架