2011-12-05 11 views
1

ここでnoobの質問に動作します:popoverviewControllerのクラッシュは、iPadの

任意のアイデアなぜこのコード:iPhone上の

UIViewController* popoverviewController = [[UIViewController alloc]init]; 
UIView* popoverView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)]; 

[webViewnetwork loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"webView" ofType:@"html"]isDirectory:NO]]]; 
[popoverView addSubview:webViewnetwork]; 

popoverviewController.view = popoverView; 
popoverviewController.contentSizeForViewInPopover = CGSizeMake (100, 100); 

self.popoverController = [[UIPopoverController alloc] initWithContentViewController:popoverviewController]; 
[self.popoverController presentPopoverFromRect:CGRectMake(0, 0, 1, 1) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES]; 

は、iPad上で正常に動作しますが、クラッシュ? 私のiPad版と同じことをやろうとしています。これは、HTML形式のテキストでサブビューを追加しています。 7行目(プログラム受信信号:SIGABRT)にクラッシュする(initWithContentViewController)

ありがとう!

+0

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIPopoverController_class/Reference/Reference.html には「PopoverコントローラはiPadデバイス専用です。他のデバイスを作成しようとしていますデバイスで例外が発生します。 – jajo87

答えて

6

UIPopoverControllerはiPadでのみ利用可能です。

+0

。それは説明するでしょう。ありがとうございました。私は使用できるはずの最も近いものは何ですか?解消ボタンや同様のテクニックを使ってhtml形式の情報テキスト(約25行のテキスト)を表示するのは簡単です – TrekOnTV2017

+3

モーダルビューコントローラを提示することは、おそらくポップオーバーを表示することとほぼ同じです。 –

+0

優秀、ありがとうございます。モーダルビューコントローラでうまくいきます。 – TrekOnTV2017

1

iPhoneでUIPopoverControllerを使用することはできません。 Uは、どのデバイスのイディオムが使用しているかを検出し、実行時に適切なviewControllerタイプを提示する必要があります。

プロジェクトhereにはいくつかの例があります。その基本的な要点は次のとおりです。

if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) { 
    /* use iPhone related viewController via either presentModal or via UIViewController containment */ 
}else{ 
    /* Using an iPad use a popoverController */ 
} 

Good Luckです。

+0

ありがとうございます。私は2つの別々のiPhoneとiPadバージョンを持っているので、私はiPhone用に別のものを実装します – TrekOnTV2017

関連する問題