iOS iOS8新特性--UIPopoverPresentationController

1.回顾UIPopoverController的使用,下面这份代码只能在ipad下运行

// 初始化控制器,SecondViewController类继承自UIViewController

 SecondViewController *vc = [[SecondViewController alloc] init];

// 把vc包装成UIPopoverController

UIPopoverController *popover = [[UIPopoverController alloc] initWithContentViewController:vc];

  // 设置popover的指向,

  // 指向当前控制上button按钮,所以FromRect后跟bounds

  // 如果是指向当前控制的View,则FromRect后跟frame

[popover presentPopoverFromRect:self.button.bounds inView:self.button permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

2. 运用UIPopoverPresentationController,下面这份代码在iphone和ipad中,都可以正常运行

2.1 在iphone中是常见的modal方式,也就是从屏幕底部爬上来,而在ipad中,是popover的那种方式

 // 初始化控制器

SecondViewController *vc = [[SecondViewController alloc] init];

// modal出来是个popover

vc.modalPresentationStyle = UIModalPresentationPopover;

// 取出vc所在的UIPopoverPresentationController

vc.popoverPresentationController.sourceView = self.button;

vc.popoverPresentationController.sourceRect = self.button.bounds;

[self presentViewController:vc animated:YES completion:nil];

2.2 在iphone中,上面这份代码等同于下面:

SecondViewController *vc = [[SecondViewController alloc] init];

/* 相当于中间3行代码不存在

vc.modalPresentationStyle = UIModalPresentationPopover;

vc.popoverPresentationController.sourceView = self.button;

vc.popoverPresentationController.sourceRect = self.button.bounds;

*/

[self presentViewController:vc animated:YES completion:nil];

2.3 苹果在iOS8中对UIViewController做了类扩展

  也就是说popoverPresentationController是UIViewController的属性

  modalPresentationStyle是UIViewController成员变量

  UIPopoverPresentationController继承自UIPresentationController, UIPresentationController又继承自NSObject

时间: 2024-10-07 06:55:12

iOS iOS8新特性--UIPopoverPresentationController的相关文章

iOS iOS8新特性-UIAlertController

iOS iOS8新特性--UIAlertController 1. iOS7及iOS7之前警告类控件有UIAlertView和UIActionSheet 1.1 UIAlertView的使用 UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"警告" message:@"这是一个UIAlertView" delegate:nil cancelButtonTitle:@"取消" oth

iOS iOS8新特性--UIPresentationController

1. UIPresentationController的作用 1>管理所有Modal出来的控制器 2>管理通过这个方法  - (void) presentViewController:(UIViewController *) animated:(BOOL) completion:^(void)completion;显示出来的控制器 3>管理\监听 切换控制器的过程 2. UIPresentationController的作用 1>控制器一旦调了present方法,控制器的prese

【学习ios之路:UI系列】(UISearchBar,UISearchDisplayController) 和UISearchController(iOS8新特性)

1.UISearchBar(效果如下:) ①创建UISearchBar对象 //初始化,定义frame UISearchBar *bar = [[UISearchBar alloc] initWithFrame:CGRectMake (0, 50, self.view.frame.size.width, 80)]; //添加到控制器的视图上 [self.view addSubview:bar]; ②UISerachBar的属性 //autocapitalizationType:包含4种类型,但是

iOS8新特性(1)——UIAlertController

一.iOS8介绍 iOS8 新特性,主要是UI上进行了统一 1.UIAlertController 2.UIPresentaionController:管理所有通过modal出来的控制器(看笔记) 3.UIPopoverPresentationController 4.SizeClass + Autolayout 5.App Extension 应用扩展 6.Core Image(iOS 5开始就有了,滤镜美图秀秀型 ) 二.UIAlertController 1.以往我们使用的时候,都是用的 

iOS8新特性扩展(Extension)应用之一——Today扩展

iOS8新特性扩展(Extension)应用之一--Today扩展 一.理解扩展 1.简介 基于iOS系统的安全性考虑,其应用的数据存储是通过沙盒模式进行的,要实现应用之间的数据共享十分困难,功能共享就更加棘手.在iOS8系统中,apple为我们提供了一个革命性的功能:扩展.我们可以通过扩展来使app间数据甚至功能进行共享. 2.几种扩展模式 (1)今日视图扩展:today 这个扩展也被叫做 widget.该扩展可以将今日发生的简短消息放到消息中心的「今日」视图里.这个功能类似于安卓系统中的小控

iOS 8新特性之扩展(Extension)

本文由海水的味道收集整理,欢迎转载 当前版本 0.0.1  iOS 8新特性之扩展 一.扩展概述 扩展(Extension)是iOS 8中引入的一个非常重要的新特性.扩展让app之间的数据交互成为可能.用户可以在app中使用其他应用提供的功能,而无需离开当前的应用. 在iOS 8系统之前,每一个app在物理上都是彼此独立的,app之间不能互访彼此的私有数据. 而在引入扩展之后,其他app可以与扩展进行数据交换.基于安全和性能的考虑,每一个扩展运行在一个单独的进程中,它拥有自己的bundle, b

iOS8新特性扩展(Extension)应用之三——照片编辑插件

iOS8新特性扩展(Extension)应用之三--照片编辑插件 通过前几篇博客的介绍,我们了解到扩展给app提供的更加强大的交互能力,这种强大的交互能力另一方面体现在照片编辑插件的应用. 和通常一样,我们先创建一个工程,然后新建一个Target,选择photo editing: 从模板中,我们可以看到系统为我们创建了一个controller,这个controller就是用于处理照片的controller,其中方法如下: - (BOOL)canHandleAdjustmentData:(PHAd

Ios8新特性-应用程序扩展

一.什么是应用程序扩展? 应用程序扩展不是一个应用,它是主体应用程序(containing app)中一个单独的包,并能生成单独的二进制文件供其他应用调用. 个人感觉,类似于WP中的启动器,把系统当个软件,启动器就是应用程序扩展: 二.与普通应用的关系 1.应用扩展不同于应用,但是需要基于应用去开发应用扩展,每个应用扩展都是独立于应用运行的二进制文件. 2.与主体应用程序不同,应用扩展实现的是一个特定的.狭义范围内的任务,并且要严格遵循扩展点的协议. 三.生命周期 1.生命周期开始于用户从某个应

iOS8新特性扩展(Extension)应用之二——分享插件

iOS8新特性扩展(Extension)应用之二--分享插件 在上一篇博客中,介绍了iOS8新特性扩展功能之一的Today功能:http://my.oschina.net/u/2340880/blog/485533,这里我们再介绍一下分享的扩展功能. 在iOS8之前,除了一些主流的社交平台,例如苹果支持内容分享外,其他开发者的应用若要加入分享的功能,将会十分的复杂.在iOS8的新特性中,apple为我们准备了这样的扩展功能. 首先创建工程,在我们的工程中新建一个Target: 之后,模板中会为我