在Xcode 4中创建一个弹出视图

时间:2012-06-25 07:53:04

标签: iphone ios uipopovercontroller

我在我的一个视图中有一个点击识别,我应该从现有的nib文件中显示一个弹出视图。我添加了以下代码

FeedTabReplyView *d = [[FeedTabReplyView alloc]initWithNibName:@"FeedTabReplyView" bundle:nil];
//d.delegate = self;
//create popover and put V2 in the popover view
UIPopoverController *popoverController = [[UIPopoverController alloc] initWithContentViewController:d]; 
//popoverController.delegate = self;  //optional
CGSize size = CGSizeMake(325, 75);
popoverController.popoverContentSize = size;
[popoverController presentPopoverFromRect:recognizer.view.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

但它引发了一个例外:

  

'NSInvalidArgumentException',原因:' - [UIPopoverController   initWithContentViewController:]在没有运行时调用   UIUserInterfaceIdiomPad'。

2 个答案:

答案 0 :(得分:2)

UIPopoverController仅适用于iPad,但对于iPhone,有一个非常好的课程WEPopover

它非常易于使用,并且几乎具有所有UIPopoverController方法和属性

答案 1 :(得分:1)

奥马尔是对的。

来自Apple doc:

  

Popover控制器仅适用于iPad设备。尝试在其他设备上创建一个会导致异常。

为什么不使用UIActionSheet

,而不是使用第三方API

如果你需要开发一个基于界面习语的通用应用程序,你可以创建一个popover(iPad)或一个动作表(iPhone)。