Проблема с UIPopoverController inRect

У меня есть UIViewController, который содержит подкласс UIView в качестве подпредставления. В подпредставлении я динамически создаю еще один UIView. Когда создается самое внутреннее представление, UIViewController через делегирование информируется о том, что он должен показать UIPopovercontroller, стрелка которого должна указывать на самый внутренний вид. В вызове метода делегата я также передаю происхождение самого внутреннего представления, чтобы UIViewcontroller использовал этот CGPoint для создания всплывающего контроллера. Проблема в том, что UIPopovercontroller не позиционируется в желаемом месте.

MyController* myController = [ [ MyController alloc] init]; 
UINavigationController *aNavController = [[UINavigationController alloc]                    initWithRootViewController: myController];
self.popOver = [[[UIPopoverController alloc]
                initWithContentViewController:aNavController] autorelease];
[aNavController release];

CGRect rect;
//CGPoint p = CGPointMake(currentPage.frame.size.width/2, currentPage.frame.size.height/2); 
rect.origin = point;    //here point is the origin of the inner most view
rect.size = self.view.frame.size;
[self.popOver presentPopoverFromRect: rect inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

В этом коде мне не хватает того, что заставляет всплывающее окно отклоняться от позиции, а не в желаемом месте.

Спасибо


person Parvez    schedule 26.03.2011    source источник


Ответы (2)


Я думаю, вы не передаете правильное представление своему popOver, проверьте один раз ...

[self.popOver presentPopoverFromRect: rect inView:myInnerView permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
person Jhaliya - Praveen Sharma    schedule 26.03.2011
comment
@Parvez: пройдите через UIPopOvercontroller raywenderlich.com/ 1056 / developer.apple.com/library/ios/#samplecode/MultipleDetailViews/ попытайтесь понять, как они используют это в образце кода ... - person Jhaliya - Praveen Sharma; 28.03.2011

rect, из которого вы представляете всплывающее окно, может быть слишком большим.

У вас установлен размер всего представления, а не размер вашего внутреннего представления.

person Christopher Moore    schedule 01.04.2011