文档章节

UIPopOverController的使用问题

hejunbinlan
 hejunbinlan
发布于 2015/06/23 20:14
字数 241
阅读 1.3K
收藏 1

码上生花,ECharts 作品展示赛正式启动!>>>

今天不经意间发现了UIPopOverController的使用,使用iphone模拟器会出现Crash

crash的原因如下:

'NSInvalidArgumentException', reason: '-[UIPopoverController initWithContentViewController:] called when not running under UIUserInterfaceIdiomPad.'

 

所以必须使用ipad进行浏览,

所以在代码中使用UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad 

 

所以在viewDidLoad的代码如下:

[cpp] view plaincopy

- (void)viewDidLoad  

{  

    [super viewDidLoad];  

    // Do any additional setup after loading the view.  

      

    UIView *container = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 416)];  

    container.backgroundColor = [UIColor lightGrayColor];  

    [self.view addSubview:container];  

       

    UIButton *tmpButton = [[UIButton alloc] initWithFrame:CGRectMake(10, 50, 100, 50)];  

    tmpButton.backgroundColor = [UIColor brownColor];  

    [tmpButton setTitle:@"点击显示" forState:UIButtonTypeCustom];  

    [tmpButton addTarget:self action:@selector(btnTest:) forControlEvents:UIControlEventTouchUpInside];  

    [self.view addSubview:tmpButton];  

    [tmpButton release];  

      

    popTableView = [[PopTableViewController alloc] init];  

      

    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {  

        popOverController = [[UIPopoverController alloc] initWithContentViewController:popTableView];  

        popOverController.delegate = self;  

        popOverController.popoverContentSize = CGSizeMake(100, 300);  

    }  

}  

 

在btnTest方法中实现popOverController显示

 

代码如下:

[cpp] view plaincopy

-(void)btnTest:(UIButton *)sender  

{  

    CGRect presentFromRect = CGRectMake(sender.frame.origin.x, sender.frame.origin.y, sender.frame.size.width, sender.frame.size.height);  

    [popOverController presentPopoverFromRect:presentFromRect inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];  

}  

 

现在可以使用ipad运行下显示了。在iphone模拟器中不会出现crash,但是不会弹出popOverController,显示不出需要的效果


本文转载自:http://www.software8.co/wzjs/yidongkaifa/1535.html

hejunbinlan
粉丝 41
博文 595
码字总数 21569
作品 0
浦东
高级程序员
私信 提问
加载中
请先登录后再评论。
UIPopoverController 使用总结

先看他的继承关系,UIPopoverController是直接继承自NSObject,它和UIViewController没有关系.那它是怎么实现弹出在所有View之上的,我猜测是利用了keywindow,把这个View加在keywindow里面,...

木木情深
2014/02/18
102
0
iOS中UIPopoverController使用详解

iOS中UIPopoverController使用详解 一、引言 UIPopoverController是Pad设备中常用的一种视图控制器,其在UI表现上为在当前视图控制器上面弹出一个子视图控制器,通常用来展示交互列表。示例如...

珲少
2016/07/13
1.2K
0
Popover View in iPhone

在iPhone上也能使用UIPopoverController。这个代码库不但让UIPopoverController的使用变得简单,同时也能在iPhone上使用UIPopoverController。点击任意控件,如按钮、导航条按钮、工具条按钮...

匿名
2012/07/06
4.1K
1
UIPickerView在UIPopoverController中正确显示方法

开发iPad应用程序与iPhone有一点小差别,就是iPad支持弹出框。这个示例展示如何在UIPopoverController上显示一个UIPickerView,当然你可以显示任何的UIView到UIPopover上面。原理就是构建一个...

长平狐
2012/08/13
57
0
转屏后UIPopoverController的重定位

UIPopoverController是iPad上特殊的UI控制器,主要用于以非全屏模态的方式显示界面上的临时信息,UIPopoverController类提供了两个方法用于显示: //用于以任意view触发的显示定位情况– pr...

big军
2013/04/17
647
0

没有更多内容

加载失败,请刷新页面

加载更多

某二手交易平台大数据平台从 0 到 1 演进与实践

在人口流量红利不再,获客成本越来越高的时代,精益创业、MVP 的概念已经深入人心,精细化运营也是大势所趋,而这些背后本质上都依赖数据化运营,那如何根据现有业务,快速从 0 开始打造一个...

osc_lc4icfkt
19分钟前
12
0
阿里云新品发布会周刊第56期 丨 如何用云服务占据全球化先机,让产品服务触达全球用户?

点击订阅新品发布会! 新产品、新版本、新技术、新功能、价格调整,评论在下方,下期更新!关注更多内容,了解更多 新品发布会专属福利 1、 全球加速GA产品免费试用:加速任意跨地域公网服务...

osc_2y1ylz6c
19分钟前
10
0
OSI七层模型和TCP/IP五层(四层)模型的概念

OSI七层模型 概念:OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范。 第一层:物理层 功能:以“0”、“1”代表电压的...

osc_fhw23e9z
21分钟前
20
0
手把手教你使用Python抓取QQ音乐数据(第三弹)

【一、项目目标】 通过手把手教你使用Python抓取QQ音乐数据(第一弹)我们实现了获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名、专辑名、播放链接。 通过手把手教你使用Python抓取QQ音乐...

osc_pl358sty
22分钟前
9
0
Knative Eventing 0.1.15 版本变更

前言 Knative Eventing 0.1.15 版本在5月27日已经发布,来看看它的变化。 注意 需要使用迁移工具把存储版本由v1alpha1 更新为 v1beta1,如果使用了Broker.Spec.ChannelTemplateSpec,需要在升...

osc_1zoujv1s
23分钟前
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部