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的语法格式为 ...
随机推荐
- Google自写插件详解
谷歌插件详解,跳转至个人主页查看. GoogleExtension
- C语言归并排序
这篇文章是学习了小甲鱼-数据结构与算法结合自考教材编写出的代码,希望自己逐渐在算法造诣上能更上一层楼. 归并排序(递归实现) “归并”一词在中文含义中就是合并的意思,而在数据结构中的定义是将两个或者两 ...
- Android DB类,支持MDB,SQLITE,SQLSERVER,支持查询、事务,对象直接插入和更新操作等
直做数据库,最近花了点时间把自己常用的东西封装在一起. DBHelper using System; using System.Collections.Generic; using System.Te ...
- 对连接到 Azure 中 Linux VM 时出现的问题进行详细的 SSH 故障排除的步骤
有许多可能的原因会导致 SSH 客户端无法访问 VM 上的 SSH 服务. 如果已经执行了较常规的 SSH 故障排除步骤,则需要进一步排查连接问题. 本文指导用户完成详细的故障排除步骤,以确定 SSH ...
- STL算法分类记忆
STL算法主要是我们强大的标准库中以迭代器或数值或函数对象为参数预先定义好的一系列算法操作. 在STL算法分类中首先要提的就是两个普遍存在的后缀: _if _copy 其中这两个后缀的作用分别是:一. ...
- 【Leetcode】【Medium】Path Sum II
Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the given su ...
- 用QT写一个对话框
打开QT creater创建取名去findDialog的项目,这个项目要基于QDialog.直接上FindDialog.h的头文件. #ifndef FINDDIALOG_H #define FIND ...
- 打通 Spark 系统运行内幕机制循环流程
本课主题 打通 Spark 系统运行内幕机制循环流程 引言 通过 DAGScheduelr 面向整个 Job,然后划分成不同的 Stage,Stage 是从后往前划分的,执行的时候是從前往后执行的,每 ...
- Simotion 凸轮同步,偏移凸轮起点
将同步对象的 SyncingMotion.camReferenceBySlaveModeRelative 修改为 POSITION_AT_START_OF_CAMMING myRetDINT := _ ...
- 040同步条件event
条件同步和条件变量同步差不多意思,只是少了锁功能,因为条件同步设计于不访问共享资源的条件环境,event=threading.Event():条件环境对象,初始值为False.event.isSet( ...