0

ビューの 1 つにタップ認識があり、そのタップで既存の 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

UIPopoverControlleriPad でのみ機能しますが、iPhone には非常に優れたクラスWEPopoverがあります。

非常に使いやすく、ほぼすべてのUIPopoverControllerメソッドとプロパティを備えています

于 2012-06-25T07:54:42.997 に答える
1

オマールは正しい。

アップルのドキュメントから:

ポップオーバー コントローラーは、iPad デバイス専用です。他のデバイスで作成しようとすると、例外が発生します。

サードパーティの API を使用する代わりに、なぜ使用しないのですUIActionSheetか?

インターフェイスのイディオムに基づいてユニバーサル アプリを開発する必要がある場合は、ポップオーバー (iPad) またはアクション シート (iPhone) を作成するだけで済みます。

于 2012-06-25T12:57:17.490 に答える