popoverview - сбой контроллера на iPhone, работает на iPad - PullRequest
1 голос
/ 06 декабря 2011

нубский вопрос здесь:

есть идеи, почему этот код:

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-форматированным текстом.Вылетает (программа получила сигнал: SIGABRT) на 7-й строке (initWithContentViewController)

спасибо!

Ответы [ 2 ]

6 голосов
/ 06 декабря 2011

Поскольку UIPopoverController доступно только на iPad.

1 голос
/ 06 декабря 2011

Вы не можете использовать UIPopoverController с iPhone.Вам нужно будет определить, какое устройство вы используете, и представить соответствующий тип viewController во время выполнения.

Проект здесь предоставляет несколько примеров.Основная суть в следующем:

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

Удачи.

...