一、iPad

1、判断是否在iPad上

BOOL iPad = ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad);

二、UISplitViewController 分割视图控制器

1、UISplitViewController 分割视图控制器(顶级视图,不能放在Nav或者其他视图中)

(1  可以通过 if (self.splitViewController) 判断是否是分割视图中  

@property (strong) UISplitViewController *splitViewController;

(2   控制器分为两部分,0 代表 Master, 1 就是指 Detail

@property (copy) NSArray *viewControllers;

比如说 UIViewController *detailVC = self.splitViewController.viewControllers[1];   如果我们处在分割视图中,它会返回detail,否则它会返回nil,这个也可以用来判断是否在分割视图中

2、delegate 协议(需要在ViewDidLoad之前就定义好协议,可能是在awakeFromNib)

(1 主要用来控制master和detail何时出现

(2 比如

- (BOOL)splitViewController:(UISplitViewController *)sender shouldHideViewController:(UIViewController *)master inOrientation:(UIInterfaceOrientation)orientation

{
     return NO; //从不隐藏左边的master

}

- (BOOL)splitViewController:(UISplitViewController *)sender shouldHideViewController:(UIViewController *)master inOrientation:(UIInterfaceOrientation)orientation

{

return UIInterfaceOrientationIsPortrait(orientation);//只在竖屏中隐藏master(对应的detail 的左上角会有一个按钮可以切换回去,但是如果没有实现委托协议的话就没有这个按钮)

}

- (void)splitViewController:(UISplitViewController *)sender willHideViewController:(UIViewController *)master withBarButtonItem:(UIBarButtonItem *)barButtonItem forPopoverController:(UIPopoverController *)popover

{

barButtonItem.title = master.title;

self.navigationItem.leftBarButton = barButtonItem;//相当于把返回master 的按钮设置为 UINavigationController的barButtonItem

}

3、master中的点击如何在detail中响应呢?

(1 通过action,通过prepareSegue一样

- (IBAction)doit

{

id detailViewController = self.splitViewController.viewControllers[1];

[detailViewController setSomeProperty:...];

}

(2 segue :但是它会更新整个视图控制器,包括我们设置的上面提到的navigtionItem的按钮,都会重新设置,所以很一般不采用

三、Popovers弹窗控制器

(不属于UIViewController,是一个NSObject,主要控制另外一个视图控制器弹出到屏幕上)

1、获得要弹出的视图控制器

@property (nonatomic, strong) UIViewController *contentViewController; //通过先获得这个要弹出的视图控制器

2、创建一个Popovers 的 segue

(需要注意的是,你在prepaeForsegue中获得的segue,是一个UIStoryboardPopoverSegue )

1 - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
2 {
3     if ([segue isKindOfClass:[UIStoryboardPopoverSegue class]]) {
4         UIPopoverController *popoverController =
5             ((UIStoryboardPopoverSegue *)segue).popoverController;
6 ...
7 } }

3、点击Popovers之外的地方,一般是默认隐藏的,但是如果它是弹窗控制器中这个视图数组中的视图的话,并不会消失隐藏

@property (copy) NSArray *passthroughViews;

但是我们可以让它隐藏:

- (void)dismissPopoverAnimated:(BOOL)animated;

- (void)popoverControllerDidDismissPopover:(UIPopoverController *)sender;

转载于:https://www.cnblogs.com/gongyuhonglou/p/10311602.html

iPad开发(Universal Applications)相关推荐

  1. iPhone和iPad开发书籍大全

    CocoaChina 苹果开发中文站 http://www.cocoachina.com/ Learning.iOS.Game.Programming(Addison.Wesley.2010-09) ...

  2. 《深入浅出iPhone/iPad开发(第2版)》——四处看看

    本节书摘来自异步社区<深入浅出iPhone/iPad开发(第2版)>一书中的四处看看,作者 [美]Dan Pilone , Tracey Pilone,更多章节内容可以访问云栖社区&quo ...

  3. 《深入浅出iPhone/iPad开发(第2版)》——在Xcode中建立你的界面

    本节书摘来自异步社区<深入浅出iPhone/iPad开发(第2版)>一书中的在Xcode中建立你的界面,作者 [美]Dan Pilone , Tracey Pilone,更多章节内容可以访 ...

  4. IPad开发之有帮助的开发工具

    本文介绍一些有帮助的IPad应用,能够帮助我们简化设计开发IPad应用. 1.iPad Dev Center 文档中心和SDK.这里有编程指南.案例代码,以及SDK4. 2. Dropbox Drop ...

  5. 浅谈iPhone和iPad开发中的图标设置

    浅谈iPhone和iPad开发中的图标设置 图标大小问题 我们的辛辛苦苦做出来的应用程序在iPhone上的表示仅仅是一个图标,对这个图标不可以不谨慎对待,不能因为大小不对头这些小问题而失真啊什么的. ...

  6. 《深入浅出iPhone/iPad开发(第2版)》——组件可以触发特定事件

    本节书摘来自异步社区<深入浅出iPhone/iPad开发(第2版)>一书中的组件可以触发特定事件,作者 [美]Dan Pilone , Tracey Pilone,更多章节内容可以访问云栖 ...

  7. iPad开发(相对于iPhone开发时专有的API)

    iPad开发 一.iPad开发简介 1.什么是iPad 一款苹果公司于2010年发布的平板电脑 定价介于苹果的智能手机iPhone和笔记本电脑产品之间 跟iPhone一样,搭载的是iOS操作系统 2. ...

  8. 《iPad开发从入门到精通》——6.2节系统主界面

    本节书摘来自异步社区<iPad开发从入门到精通>一书中的第6章,第6.2节系统主界面,作者 杨春泽,更多章节内容可以访问云栖社区"异步社区"公众号查看 6.2 系统主界 ...

  9. iOS(iPhone,iPad))开发(Obje…

    原文地址:iOS(iPhone,iPad))开发(Objective-C)开发库常用库索引 作者:子木潇雨 http://www.code4app.com 这网站不错,收集各种 iOS App 开发可 ...

  10. iPhone与iPad开发实战读书笔记

    iPhone开发一些读书笔记 手机应用分类 1.教育工具 2.生活工具 3.社交应用 4.定位工具 5.游戏 6.报纸和杂志的阅读器 7.移动办公应用 8.财经工具 9.手机购物应用 10.风景区相关 ...

最新文章

  1. Chrome 技术篇-常用web调试技巧清除缓存并硬性重新加载
  2. 关于STL 容器的嵌套使用, 小试牛刀
  3. mongodb创建用户
  4. input python 验证int_全国计算机二级Python真题解析-1
  5. 2018 ACM ICPC Asia Regional - Seoul B.Cosmetic Survey
  6. 总奖池25万!百度AI Studio人工智能竞赛火热报名中
  7. 互联网产品的测试策略应该如何设计?
  8. 怎么删除用户_误删的手机照片怎么恢复?三种快速恢复的方法
  9. Maven构建Web项目
  10. 软件工程之软件设计③(概要设计说明书,详细设计说明书)
  11. Excel表格中正数设置为红色负为绿色
  12. 中国低线城市洞察综述
  13. 计算机专业在经济社会的应用,计算机技术对社会发展的影响
  14. structs2框架学习一(启动过程和各种配置)
  15. 服务器摆放需要预留U位么_客厅沙发怎么摆放?六种方法教你如何摆放!(实用荐读)...
  16. 直击进博会 | 霍尼韦尔、飞利浦、西门子医疗、阿斯利康、赛诺菲、默沙东、蔡司等持续看好中国市场...
  17. 支持小米java文件阅读器_小米多看电纸书MiReader 桌面LauncherApp(自制软件)
  18. fork()创建子进程步骤、函数用法及常见考点(内附fork()过程图)
  19. Tableau学习Step2一数据文件的读取与统计图、表的概述
  20. Java上传图片功能

热门文章

  1. Hive一些参数设置
  2. 函数定义的规范-电子书包
  3. 设计模式系列:小小总结
  4. 2008秋-计算机软件基础-第三章- 二叉排序树
  5. 微信小程序富文本rich-text使用详解-微信小程序系统学习攻略​
  6. JavaScript 中 Number
  7. java基础—System类的方法演示
  8. header.vue 调用变量,别的组件导入引用,组件方法事例实例
  9. CompletableFuture java 8新增加异步处理
  10. 【安全测试自学】初探web安全处测试(三)