0

我的一个视图中有一个点击识别,点击它我应该从现有的 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 下运行时调用。'

4

2 回答 2

2

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

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

于 2012-06-25T07:54:42.997 回答
1

奥马尔是对的。

来自苹果文档:

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

你为什么不使用第三方 API 而不是使用UIActionSheet?

如果您需要基于界面习惯开发通用应用程序,您可以只创建一个弹出框 (iPad) 或一个操作表 (iPhone)。

于 2012-06-25T12:57:17.490 回答