IOS - Passbook
1. 什么是Passbook
// 添加框架
#import <PassKit/PassKit.h>
@interface GViewController ()
// 存放加载的pkpass文件
@property (strong,nonatomic) NSArray *dataList;
@end
@implementation GViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// 获得加载到得数据
_dataList = [self loadPasses];
// IOS6 和 IOS7 适配
if ([[[UIDevice currentDevice] systemVersion] floatValue]>=7.0 ) {
[self.tableView setContentInset:UIEdgeInsetsMake(20, self.tableView.contentInset.left, self.tableView.contentInset.bottom, self.tableView.contentInset.right)];
}
}
/**
* 加载数据
*
* @return 返回文件后缀名为pkpass 的文件
*/
- (NSArray *)loadPasses
{
// 1.获得mainBundle 的路径
NSString *resourcePath = [[NSBundle mainBundle] resourcePath];
// 2.取出mainBundle中的文件,存放在数组中
NSArray *array = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:resourcePath error:nil];
// 3.遍历数组,取出pkpass 文件
NSMutableArray *arrayM = [NSMutableArray array];
for (NSString *fileName in array) {
// 获取文件后缀名为.pkpass 的文件
if ([fileName hasSuffix:@".pkpass"]) {
[arrayM addObject:fileName];
}
}
// 4.返回获得的数据
return arrayM;
}
-(void)openWithName:(NSString *)name
{
// 1.根据文件名获取文件完整路径
NSString *path = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:name];
// 2.将文件加载到NSData中
NSData *data = [NSData dataWithContentsOfFile:path];
// 3.实例化pkpass (根据NSData 数据)
PKPass *pass = [[PKPass alloc] initWithData:data error:nil];
// 4.将pass实例添加到pass视图中
PKAddPassesViewController *controller = [[PKAddPassesViewController alloc] initWithPass:pass];
// 5.显示pass视图控制器
[self presentViewController:controller animated:YES completion:nil];
}
#pragma mark - tableView 的数据源方法
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return _dataList.count;
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
// 1.设置cell的唯一标示符
static NSString *ID = @"cell";
// 2.cell重用
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID forIndexPath:indexPath];
// 3.设置cell的内容
cell.textLabel.text = _dataList[indexPath.row];
return cell;
}
#pragma mark - tableView 的代理方法
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[self openWithName:_dataList[indexPath.row]];
}
@end
IOS - Passbook的更多相关文章
- PHP资源列表
一个PHP资源列表,内容包括:库.框架.模板.安全.代码分析.日志.第三方库.配置工具.Web 工具.书籍.电子书.经典博文等等. 初始翻译信息来自:<推荐!国外程序员整理的 PHP 资源大全& ...
- 【PHP资源】PHP 资源大全
看到这篇文章不错,转来收藏 依赖管理 依赖和包管理库 Composer/Packagist:一个包和依赖管理器 Composer Installers:一个多框架Composer库安装器 Pickle ...
- 【PHP开发】国外程序员收集整理的 PHP 资源大全
依赖管理 依赖和包管理库 Composer/Packagist:一个包和依赖管理器 Composer Installers:一个多框架Composer库安装器 Pickle:一个PHP扩展安装器 其他 ...
- 优秀的PHP开源项目集合
包管理Package Management Package Management Related 框架 框架组件 微框架Micro Frameworks 内容管理系统Content Managemen ...
- 推荐!国外程序员整理的 PHP 资源大全
推荐!国外程序员整理的 PHP 资源大全 2014/08/02 · PHP, 工具与资源 · 8.5K 阅读 · 1 评论· php 分享到:0 与<YII框架>不得不说的故事—安全篇 R ...
- PHP框架、库和软件资源大全(整理篇)
php的资料 https://github.com/ziadoz/awesome-php Awesome PHP A curated list of amazingly awesome PHP lib ...
- 国外程序员收集整理的PHP资源大全
依赖管理 依赖和包管理库 Composer/ Packagist:一个包和依赖管理器 Composer Installers:一个多框架Composer库安装器 Pickle:一个PHP扩展安装器 其 ...
- [ Alcatraz ]管理Xcode插件
[ Alcatraz 配置 ] 1.包管理器在线安装 Terminal终端 $ curl -fsSL https://raw.githubusercontent.com/supermarin/Alca ...
- 【转】国外程序员收集整理的PHP资源大全
ziadoz在 Github发起维护的一个PHP资源列表,内容包括:库.框架.模板.安全.代码分析.日志.第三方库.配置工具.Web 工具.书籍.电子书.经典博文等等.伯乐在线对该资源列表进行了翻译, ...
随机推荐
- 如何催促Apple进行App审核
为什么提交给 App Store 的应用进入"审核(In Review)"状态后, 仍然可能会等待好多天的时间 ? 不过你也可以通过催促Apple进行App审核来缩短这个时间.以下 ...
- ScriptManager与UpdatePanel总结
1.From http://www.cnblogs.com/Tim-Seven/archive/2011/02/11/1952409.html Ajax Extensions 2.ScriptMana ...
- ajax基础了解
使用Ajax的最大优点,就是能在不更新整个页面的前提下维护数据.这使得Web应用程序更为迅捷地回应用户动作,并避免了在网络上发送那些没有改变过的信息.AJAX即“Asynchronous JavaSc ...
- MSP430G2333下位机乘法运算需要注意的一个问题
背景: 最近负责为主板管理电源的电源管理模块编写软体,使用的MCU为MSP430G2333.功能上很简单,即通过板子上的硬件拨码设定,或者通过IIC与主板通信,由主板的BIOS决定开机及关机的延时供电 ...
- OC第三节——NSArray和NSMutableArray
1.OC数组和c数组的区别 C语言的数组: 相同类型变量的有序结合. 类型:可以是简答数据类型.构造数据类型 int a[10 ...
- 微信电话本可免费拨打网络电话 通话一分钟约300K流量
微信电话本新版本于昨日晚间发布,这是一款智能通讯增强软件,通话双方都下载此APP并开通免费通话功能就能使用微信电话本拨打免费网络电话,在对方无法接通情况下还能将音频转向语音信箱,微信电话本目前支持An ...
- Swift3.0P1 语法指南——字符串与字符
原档:https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programmi ...
- 在同一个页面使用多个不同的jQuery版本,让它们并存而不冲突
- jQuery自诞生以来,版本越来越多,而且jQuery官网的新版本还在不断的更新和发布中,现已经达到了1.6.4版本,但是我们在以前的项目中就已经使用了旧版本的jQuery,比如已经出现的:1.3 ...
- CentOS-6.5-saltstack-安装
官方网站:https://www.saltstack.com/ 官方文档 https://docs.saltstack.cn/contents.html GitHub: https://gith ...
- 转一篇简易易懂的android回调的实现--->(转的)
回调机制在 Android 监听用户界面操作中的体现 本文讨论以下两个内容: 1. 回调函数 2. 回调机制在 Android框架 监听用户界面操作中的作用 一 回调函数 回调函数就是一个通过函数 ...