UIPopoverPresentationController на iOS8 всегда отображается в полноэкранном режиме

Когда вы нажимаете кнопку, которая находится в пользовательском представлении, я хочу показать всплывающее окно (ширина: 200, высота: 300) на iOS8. Когда я это делаю, я получаю всплывающее окно как полноэкранное всплывающее окно. (делегат тоже не работает. не вызывает prepareForPopoverPresentation и т.д...

Как я могу правильно показать всплывающее окно с шириной: 200, высотой = 300 и в чем может быть проблема с тем, что делегат не вызывает?

-(void)buttonPressed:(UIView*)sender{
    CGRect rect=[self convertRect:sender.frame fromView:sender.superview];

    rect.origin.y-=10;

    rect.size.width=60;
    rect.size.height=60;

    self.stViewController=[[STViewController alloc]init];


    self.stViewController.view.frame=CGRectMake(0, 0, 200, 300);

    self.stViewController.modalPresentationStyle=UIModalPresentationPopover;
    self.stViewController.preferredContentSize = CGSizeMake(200,300);

    if (self.stViewController.popoverPresentationController)
    {
        self.stViewController.popoverPresentationController.delegate=self;
        self.stViewController.popoverPresentationController.sourceView=self.superview;
        self.stViewController.popoverPresentationController.sourceRect=rect;
        self.stViewController.popoverPresentationController.permittedArrowDirections = UIPopoverArrowDirectionLeft|UIPopoverArrowDirectionRight;

        [[(AppDelegate*)[UIApplication sharedApplication].delegate mainViewController] presentViewController:self.stViewController animated:YES completion:nil];
    }
}

person frankish    schedule 19.09.2014    source источник


Ответы (1)


person    schedule
comment
Это работает, но я должен снова устанавливать делегата каждый раз, когда представляю контроллер представления (с настроенным всплывающим окном) - person onmyway133; 02.10.2014
comment
Возможно, вы устанавливаете для делегата значение nil, когда всплывающее окно закрывается или вот-вот будет закрыто. - person frankish; 03.10.2014