iPad开发(Universal Applications)

一、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;

时间: 2024-10-19 15:19:53

iPad开发(Universal Applications)的相关文章

OC开发_Storyboard——iPad开发

iPad开发(Universal Applications) 一.iPad 1.判断是否在iPad上 BOOL iPad = ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad); 二.UISplitViewController 分割视图控制器 1.UISplitViewController 分割视图控制器(顶级视图,不能放在Nav或者其他视图中) (1  可以通过 if (self.splitVie

iOS开发UI篇—iPad开发中得modal介绍

一.简单介绍 说明1: 在iPhone开发中,Modal是一种常见的切换控制器的方式 默认是从屏幕底部往上弹出,直到完全盖住后面的内容为止 说明2: 在iPad开发中,Modal的使用频率也是非常高的 对比iPhone开发,Modal在iPad开发中多了一些用法 二.呈现样式 (一)什么叫呈现样式 Modal出来的控制器,最终显示出来的样子 (二)Modal常见有4种呈现样式 (1)UIModalPresentationFullScreen :全屏显示(默认) (2)UIModalPresent

(一〇八)iPad开发之横竖屏适配

在iPad开发中,横竖屏的视图常常是不同的,例如侧边栏Dock,在横屏时用于屏幕较宽,可以展示足够多的内容,每个按钮都可以展示出标题:而竖屏时Dock应该比较窄,只显示图标不现实按钮标题. iPad比较重要的知识是不同类型设备的宽高在以点为单位的图形坐标系下固定为768x1024,因此常常利用此值来判断横竖屏. 768.1024.横竖屏判断很常用,可以定义一个公共的常量文件来放这些内容. [常量和宏的定义] ①在.m文件中,定义变量,加上const,注意指针(例如NSString*)使用的是常量

iPad开发中UIPopoverController的使用

什么是UIPopoverController 是iPad开发中常见的一种控制器 跟其他控制器不一样的是,它直接继承自NSObject,并非继承自UIViewController 它只占用部分屏幕空间来呈现信息,而且显示在屏幕的最前面 使用步骤 要想显示一个UIPopoverController,需要经过下列步骤 设置内容控制器 由于UIPopoverController直接继承自NSObject,不具备可视化的能力 因此UIPopoverController上面的内容必须由另外一个继承自UIVi

初学iPad开发入门

iPad是一款苹果公司于2010年发布的平板电脑定位介于苹果的智能手机iPhone和笔记本电脑MacBook产品之间跟iPhone一样,搭载的是iOS操作系统 iPhone和iPad开发的区别 屏幕的尺寸 \分辨率 UI元素的排布 \设计 键盘 API 屏幕方向的支持 … … 1.iPhone&iPad开发异同 1.1键盘 iPad的虚拟键盘多了个退出键盘的按钮 1-iPhone键盘.png 2-iPad键盘.png 1.2iPad特有API iPad多了一些特有的类,比如: UIPopover

iPad开发简单介绍

iPad开发最大的不同在于iPhone的就是屏幕控件的适配,以及横竖屏的旋转. Storyboard中得SizeClass的横竖屏配置,也不支持iPad开发. 1.在控制器中得到设备的旋转方向 在 iOS8及以后,屏幕就只有旋转后屏幕尺寸之分,不再是过期的旋转方向. 在iOS7及以前得到屏幕旋转方向的方法 /** // UIInterfaceOrientation ,屏幕方向 UIInterfaceOrientationUnknown = UIDeviceOrientationUnknown,

iPad开发 - UIPopoverController控制器

iPad简介 什么是iPad 一款苹果公司于2010年发布的平板电脑 定位介于苹果的智能手机iPhone和笔记本电脑产品之间 跟iPhone一样,搭载的是iOS操作系统 iPad的市场情况 截止至2013年10月23日,iPad已经累计销售1.7亿台 在平板市场的占有率高达81% iPhone和iPad开发的区别 iPhone是手机,iPad.iPad Mini是平板电脑 iPhone和iPad开发的区别 屏幕的尺寸 \分辨率 UI元素的排布 \设计 键盘 API 屏幕方向的支持 - - 屏幕的

使用 Portable Class Library(可移植类库)开发 Universal Windows App

今天在这里跟大家聊聊关于 Windows Universal 应用夸平台的问题,首先Universal Windows App的定义相信大家已经有所了解了(如果你是一个刚刚接触 Universal APP 的开发这个请先阅读一下我之前的文章 Windows Phone 8.1 开发技术概览 [Universal APP]), 相信大家在这里最苦恼的事情莫过于在不同开发架构下分享代码了,今天我在这里给大家推荐一个解决方案使用可移植类库(Portable Class Library)在不同的Wind

iOS(iPhone,iPad))开发(Objective-C)开发库常用库索引

http://www.code4app.com 这网站不错,收集各种 iOS App 开发可以用到的代码示例 http://www.cocoacontrols.com/ 英文版本的lib收集 http://www.objclibs.com/ 精品lib的收集网站 http://www.ityran.com/forum-61-1.html 泰然代码仓库 ---------------------- emoji ---------------------- http://www.easyapns.c