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 工具.书籍.电子书.经典博文等等.伯乐在线对该资源列表进行了翻译, ...
随机推荐
- hdu1757 A Simple Math Problem
Problem Description Lele now is thinking about a simple function f(x).If x < 10 f(x) = x.If x > ...
- 【深入JVM内核—原理、诊断与优化】第2期开课了
[深入JVM内核—原理.诊断与优化]的讲师“葛一鸣”,人称“一哥”,毕业于浙江工业大学,计算机软件与理论专业硕士,是国家认证系统分析师,OCP.2012年出版过<Java程序性能优化>,荣 ...
- 新年新技术:HTTP/2
新的一年,项目也要带着发展的眼光往前走,得跟上潮流,当然前提是自己真的用的上. 用的上用不上都得先简单了解下. 2月下旬Google发布了首个基于HTTP/2的RPC框架GRPC,它是基于HTTP/2 ...
- 【C语言入门教程】5.5 实现问题(效率)
在设计函数时需要遵循一些基本原则,因为影响到函数的执行效率和可用性.函数是代码复用的基础,一个健壮的函数或由函数组成的函数集可以在多个程序中使用.C语言标准库里存放的就是这样的函数,这些函数被放置在头 ...
- OpenCV imread读取图片,imshow展示图片,出现cv:Exception at memory location异常
问题如上.环境:VS2013. 代码如下: #include "stdafx.h" #include "opencv2\opencv.hpp" using na ...
- H5案例分享:html5重力感应事件
html5重力感应事件 一.手机重力感应图形分析 1.设备围绕z轴的旋转角度为α,α角度的取值范围在[0,360). 设备在初始位置,与地球(XYZ)和身体(XYZ)某个位置对齐. 设备围绕z轴的旋转 ...
- CentOS 6.5 3.0.4安装agentd
更改主机名为test3 [root@localhost ~]# cat /etc/sysconfig/network NETWORKING=yes HOSTNAME=test3 关闭selinux [ ...
- C#GDI+编程基础(二)
pen类:绘制指定宽度和样式的直线.使用DashStyle属性绘制几种虚线,可以使用各种填充样式(包括纯色和纹理)来填充Pen绘制的直线,填充模式取决于画笔或用作填充对象的纹理. 创建画笔: //用指 ...
- BZOJ4411——[Usaco2016 Feb]Load balancing
1.题意: 给出N个平面上的点.保证每一个点的坐标都是正奇数. 你要在平面上画两条线,一条是x=a,一条是y=b,且a和b都是偶数. 直线将平面划成4个部分,要求包含点数最多的那个部分点数最少. 2. ...
- Android学习笔记(十三)——广播机制
//此系列博文是<第一行Android代码>的学习笔记,如有错漏,欢迎指正! Android 中的每个应用程序都可以对自己感兴趣的广播进行注册,这样该程序就只会接收到自己所关心的广播内容 ...