2011-12-05 30 views
1

一個小白的問題在這裏:popoverviewController崩潰,適用於iPad的

任何想法,爲什麼這樣的代碼:

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,但墜毀在iPhone上? 我試圖做同樣的事情,在我的iPad版本,這是添加一個HTML格式文本的子視圖。它在第7行(initWithContentViewController)上崩潰(程序接收信號:SIGABRT)

謝謝!

+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 */ 
} 

好運。

+0

謝謝。我有兩個獨立的iPhone和iPad版本,所以我只需爲iPhone實現其他功能 – TrekOnTV2017