从偏好设置中读取值:

打电话代码:

发信息代码:

打印沙盒路径代码:

应用程序之间跳转代码:

跳转到苹果商店代码:

去除警告代码:

根据字符串名称转换成相对应方法的代码:

#import "SZMSettingsCell.h"@implementation SZMSettingsCell//选择不同的cell类型
+ (UITableViewCellStyle)cellStyleWithDict:(NSDictionary *)dict{UITableViewCellStyle cellStyle = UITableViewCellStyleDefault;if ([dict[@"cellStyle"]isEqualToString:@"UITableViewCellStyleSubtitle"]) {cellStyle = UITableViewCellStyleSubtitle;}else if ([dict[@"cellStyle"]isEqualToString:@"UITableViewCellStyleValue1"]){cellStyle = UITableViewCellStyleValue1;}else if ([dict[@"cellStyle"]isEqualToString:@"UITableViewCellStyleValue2"]){cellStyle = UITableViewCellStyleValue2;}return cellStyle;}+ (instancetype)settingsCellWithTableView:(UITableView *)TableView withDict: (NSDictionary *)dict{static NSString *ID = @"id";SZMSettingsCell *cell = [TableView dequeueReusableCellWithIdentifier:ID];if (cell == nil) {cell = [[SZMSettingsCell alloc]initWithStyle:[self cellStyleWithDict:dict] reuseIdentifier:ID];}return cell;
}- (void)setItem:(NSDictionary *)item{_item = item;//给cell设置文字self.textLabel.text = item[@"title"];//给cell设置图片if (item[@"icon"]) {self.imageView.image = [UIImage imageNamed:item[@"icon"]];}//给cell详细信息if (item[@"details"] && [item[@"details"] length] > 0) {self.detailTextLabel.text = item[@"details"];//判断cell的详细信息文字是否需要变为红色if (item[@"isHighlighted"]) {self.detailTextLabel.textColor = [UIColor redColor];}}//判断当前cell中的details信息,是否在偏好设置中已经设置好了if (item[@"detailsKeyName"]) {//从偏好设置中读取存储的内容NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];NSString *text = [defaults objectForKey:item[@"detailsKeyName"]];//如果存储的内容不为空if (text) {self.detailTextLabel.text = text;}}//设置右侧的accessoryviewif (item[@"accessory"]) {//根据配置文件中的字符串(item[@"accessory"]在plist文件中对应的字符串)来创建对应的类Class accessoryCalss = NSClassFromString(item[@"accessory"]);//创建这个类型的对象id obj = [[accessoryCalss alloc]init];if ([obj isKindOfClass:[UIImageView class]]) {//表示是图片框UIImageView *imgView = (UIImageView *)obj;imgView.image = [UIImage imageNamed:item[@"accessoryImage"]];//调整图片框与图片大小相同
            [imgView sizeToFit];}//设置cell的accessoryView为动态的创建的这个类型self.accessoryView = obj;//判断如果是开关,注册一个valueChange事件if ([obj isKindOfClass:[UISwitch class]]) {UISwitch *switcher = (UISwitch *)obj;[switcher addTarget:self action:@selector(swithcValueChanged:) forControlEvents:UIControlEventValueChanged];//从偏好设置中读取开关的值,并设置NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults];//读取switcher.on = [userDefault boolForKey:self.item[@"keyName"]];}}
}- (void)swithcValueChanged:(UISwitch *)sender{//获取开关的状态//把开关状态保存到偏好设置中NSUserDefaults *userDefu = [NSUserDefaults standardUserDefaults];[userDefu setBool:sender.isOn forKey:self.item[@"keyName"]];[userDefu synchronize];}
- (void)setTime:(NSString *)str{self.detailTextLabel.text = str;//把时间交给偏好设置进行记录NSUserDefaults *userDefu = [NSUserDefaults standardUserDefaults];[userDefu setObject:str forKey:self.item[@"detailsKeyName"]];[userDefu synchronize];
}

把一个控制器包装成导航控制器的代码:

转载于:https://www.cnblogs.com/ZMiOS/p/5041751.html

去除警告,打电话,发信息,应用程序之间跳转,打印沙盒路径,字符串名字转换方法,包装导航控制器等的代码...相关推荐

  1. 酷客多小程序实现小程序之间跳转功能,让小程序玩出新花样

    自从微信公布可以实现小程序之间相互跳转功能以来,酷客多小程序(http://www.kukeduo.cn)紧跟脚步,就在上周推出了小程序跳转小程序的端口,对于拥有多个小程序的企业来说,这个新功能的推出 ...

  2. iOS App跟小程序之间跳转

    移动应用拉起小程序是指用户可以通过接入该功能的第三方移动应用(APP)跳转至某一微信小程序的指定页面,完成服务后跳回至原移动应用(APP). App和小程序互相跳转: 1)App主动发起小程序卡片分享 ...

  3. 《Java编码指南:编写安全可靠程序的75条建议》—— 指南20:使用安全管理器创建一个安全的沙盒...

    本节书摘来异步社区<Java编码指南:编写安全可靠程序的75条建议>一书中的第1章,第1.20节,作者:[美]Fred Long(弗雷德•朗), Dhruv Mohindra(德鲁•莫欣达 ...

  4. 沙盒不再高端,Windows11将自带沙盒让程序检测更方便

    Windows 沙盒提供了轻型桌面环境,可以安全地在隔离状态下运行应用程序. 安装在 Windows 沙盒环境下的软件保持"沙盒"状态,并且与主机分开运行. 沙盒是临时的. 当关闭 ...

  5. 新一配:程序员发信息给爸说996好累,结果看到回复蒙了:坚持就是胜利

    相信不少人都知道这两年互联网流行996的工作模式,就是早上9点上班,晚上9点下班,一周只休一天,而且很多人都曝出,常常都加班到凌晨的都有,即使到了下班时间都不敢走,所以不少人都觉得非常累,甚至有些人都 ...

  6. sim900GPRS使用C语言打电话发短信

    --------------------------------------------- 主机操作系统:Centos 6.5 交叉编译器环境:arm-linux-gcc-4.5.4 开发板平台: F ...

  7. Web之间跳转和信息共享、Servlet的三大作用域对象、动态网页JSP

    一:Web之间跳转和信息共享 01.为什么需要Servlet之间的交互 Web组件(Servlet/JSP)的交互:Web组件之间的跳转,数据共享.为什么Web组件之间需要跳转,需要数据共享.![we ...

  8. SIM71004G模块使用Linux C语言实现打电话发短信

    为了方便查看博客,特意申请了一个公众号,附上二维码,有兴趣的朋友可以关注,和我一起讨论学习,一起享受技术,一起成长. 一.实验目的: SIM71004G模块使用Linux C语言实现打电话发短信. 二 ...

  9. 利用Messager信使服务在局域网内发信息

    利用Messager信使服务在局域网内发信息在局域网中,我们常常想将一些消息告诉在附近房间的人,除了跑过去说或打电话外,一般情况下,我们都使用QQ类软件,或发电子邮件.但两者都有缺点,电子邮件不是实时 ...

最新文章

  1. linux socket 清空缓存区
  2. 页面滚动事件和利用JS实现回到顶部效果
  3. Lammps命令与in文件
  4. 毕加索发布轻量化转化引擎及BIMSOP协作云平台
  5. asp.net url传值,弹窗
  6. 《几何与代数导引》例2.7.3
  7. 使用Enterprise Architecture绘制10种UML画画
  8. 解决XCode安装插件后插件不能使用的问题(转载)
  9. MySQL数据库初识
  10. 易语言写的一个去广告小软件
  11. css3字体加粗的问题
  12. xgene:WGS,突变与癌,RNA-seq,WES
  13. codeforces949D Curfew
  14. 夺命雷公狗ThinkPHP项目之----企业网站25之网站前台面包屑导航URL的完善
  15. 串口转以太网与监控软件modbusTCP客户端通信配置
  16. Leetcode-1658. 将 x 减到 0 的最小操作数
  17. 如何用tushare复盘
  18. 如何抠图人像换背景?教你一个在线操作的方法
  19. 关于今天参加学校ACM比赛的感想
  20. 通过三点坐标求三角形面积

热门文章

  1. 很全的SQL注入语句,有SQL漏洞的都可以拿下
  2. 源码解析 React Hook 构建过程
  3. [NOI2017]游戏(2-SAT)
  4. edx错误的地方开始安装
  5. viewholder
  6. javascript eval函数解析json数据时为什加上圆括号eval((+data+))
  7. Ipad亚麻布纹背景-最终效果_学习教程
  8. Epoll为我们带来了什么
  9. Goolg Chrome 插件开发--Hello world
  10. Android 懒加载