UIPopoverController inRect проблема - PullRequest
1 голос
/ 26 марта 2011

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

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];

Чего мне не хватает в этом коде, который заставляет всплывающее окно появляться отклоненным от позиции, а не в нужном месте.1004 *

Спасибо

Ответы [ 2 ]

0 голосов
/ 01 апреля 2011

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

Вы установили размер всего представления вместо размера самого внутреннего представления.

0 голосов
/ 26 марта 2011

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

[self.popOver presentPopoverFromRect: rect inView:myInnerView permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
...