DZNSegmentedControl和XLForm联合使用
前言:
可能我还没有掌握IOS开发的精髓, 总感觉写ios代码像调bug, 任何一个功能开发完成之后总会有莫名其妙的问题, 最终这些问题很大概率会归结为"系统特性".
正文:
问题一
项目中想要实现一个控制器的嵌套, 选了DZNSegmentedControl 控件, 使用过程中出现了如下图的问题

控件的使用在第二个控制器里, 当返回第一个控制器时, 应用直接崩溃. 工程项目中没有一行有用的日志输出, 只能一行一行看代码, 最终看代码并与demo对比没发现任何不妥, 只能一行行注释代码看运行效果:

经过运行测试, 发现是上述行代码引起的. 但是这个功能是什么相比不用多说,是很必要的,那怎么解决?
从现状分析我们可知, 当我们返回第一个控制器时,我们使用DZNSegmentedControl 控件的第二个控制器被销毁了, 由此引发崩溃. 而崩溃的原因在于 scrollview 的segmentedControl代理不为空. 解决办法很简单, 在销毁时让它为空!
于是在第二个控制器中添加了如下代码:
-(void) viewDidDisappear:(BOOL)animated{
self.svcontent.segmentedControl = nil;
}
这样整个程序就完美运行了!
ps: 后面为了写本文重新写了个简单项目, 发现有崩溃日志了,也是囧! 日志如下:

原因与我们推测是一样的, 当然还是使用上述解决办法!
问题二
当XLFormViewController 的view嵌套仅scrollview中时 ,我们发现XLFormRowDescriptorTypeSelectorPush 类型的行不能弹出选项了. 原因我们很容易知道, 因为它要弹出的是一个新的窗口, 而原始的XLFormViewController 并不在管理当前window. 当我们将行类型其换成XLFormRowDescriptorTypeSelectorAlertView 就能够正常显示了.

但我们同时又面临新的问题, 弹出的 "取消" 按钮是英文的.
使用XLFormRowDescriptorTypeSelectorAlertView 在整个工程路径中搜索, 发现XLFormSelectorCell.m文件中有NSLocalizedString(@"Cancel", nil)] 的代码, 于是我们确信通过适配多语言可以修改XLFrom英文.

参考: 多语言适配
完整代码: https://github.com/talkfiled/SegmentedXLFormIssues
DZNSegmentedControl和XLForm联合使用的更多相关文章
- Dynamics CRM 之ADFS 使用 WID 的独立联合服务器
ADFS 的使用 WID 的独立联合服务器适用于自己的测试环境,常用的就是在虚机中使用. 拓扑图如下: wID:联合身份验证服务配置为使用 Windows 内部数据库
- Dynamics CRM 之ADFS 使用 WID 的联合服务器场
使用 WID 的联合服务器场 默认拓扑 Active Directory 联合身份验证服务 (AD FS) 是联合服务器场,使用 Windows 内部数据库 (WID). 在这种拓扑, AD FS 使 ...
- Hibernate(5)—— 联合主键 、一对一关联关系映射(xml和注解) 和 领域驱动设计
俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及的知识点总结如下: One to One 映射关系 一对一单向外键(XML/Annotation) 一对一双向外键关联(XML/A ...
- Federated Identity Pattern 联合身份模式
Delegate authentication to an external identity provider. This pattern can simplify development, min ...
- [占位-未完成]scikit-learn一般实例之十一:异构数据源的特征联合
[占位-未完成]scikit-learn一般实例之十一:异构数据源的特征联合 Datasets can often contain components of that require differe ...
- SQL联合查询:子表任一记录与主表联合查询
今天有网友群里提了这样一个关于SQL联合查询的需求: 一.有热心网友的方案: 二.我的方案: select * from ( select a.*,(select top 1 Id from B as ...
- Dynamics CRM 之ADFS 使用 SQL Server 的联合服务器场
此拓扑用于 Active Directory 联合身份验证服务 (AD FS) 不同于使用 Windows 内部数据库 (WID) 部署拓扑,因为不会将数据复制到每台联合服务器场中的联合身份验证服务器 ...
- Dynamics CRM 之ADFS 使用 WID 和代理的联合服务器场
为此部署拓扑 Active Directory 联合身份验证服务 (AD FS) 等同于联合服务器场与 Windows 内部数据库 (WID) 拓扑中,但它将代理服务器计算机添加到外围网络,以支持外部 ...
- Mysql联合,连接查询
一. 联合查询 UNION, INTERSECT, EXCEPT UNION运算符可以将两个或两个以上Select语句的查询结果集合合并成一个结果集合显示,即执行联合查询.UNION的语法格式为 ...
随机推荐
- Hibernate 脏检查和刷新缓存机制
刷新缓存: Session是Hibernate向应用程序提供的操作数据库的主要接口,它提供了基本的保存,更新,删除和加载java对象的方法,Session具有一个缓存,可以管理和追踪所有持久化对象,对 ...
- USG防火墙基础
http://support.huawei.com/huaweiconnect/enterprise/thread-331003.html 华为防火墙产品线 安全区域 1. 默认防火墙区域 T ...
- Repeat Number(数论)
Repeat Number 题目描述: Definition: a+b = c, if all the digits of c are same ( c is more than ten), then ...
- Android sqlite日期存储
SQLite日期类型是以TEXT.REAL和INTEGER类型分别不同的格式表示的,对应如下:TEXT: "YYYY-MM-DD HH:MM:SS.SSS"REAL: 以Julia ...
- Django后台注册
- PHP 调用web service接口(.net开发的接口)
实例代码1: try { $this->soapClientObj = new SoapClient(self::URL . '?wsdl', array('connection_timeout ...
- mybatis支持的jdbc类型
参考mybatis的枚举JdbcType源码: 关于这些类型mybatis是如何处理可以看一下TypeHandler类的源码.
- Python零基础学习系列之四--Python程序设计思想
前面我们把Python环境安装成功,同时也选择了自己合适的IDE工具来开启自己的编程之旅. 那么今天来说说怎么编程,程序设计需要什么步骤,我们应该怎么做才能编写自己的程序. 1-1.程序设计方法: I ...
- 从Event Loop谈JS的运行机制
这里主要是结合Event Loop来谈JS代码是如何运行的. 事件循环对于我们平时开发可以说是特别重要,可以让我们写出更好的代码. 到这里相信我们已经知道了JS引擎是单线程,而且这里会用到前面说的的几 ...
- dailiaojie new
http://imushan.com/categories/Java/ 编译优化手段.