UIPopOverController теряет контент при вращении - PullRequest
1 голос
/ 20 января 2011

мой UIPopOverController иногда теряет свое содержимое, когда его поворачивают (не воспроизводит) или, например, если я открываю некоторый контент из табличного представления в альбомной ориентации, поворачиваю устройство в портретную, а затем открываю тот же контент в портретной.

Popovercontroller отображается, но контент не виден, т. Е. Он черный .... кто-нибудь сталкивался с этим или чем-то подобным?

1 Ответ

4 голосов
/ 16 апреля 2011

Я столкнулся с подобными проблемами при использовании UIPopoverController после того, как произошло вращение (размер UIPopoverController изменился странным образом, он переместился в странные места на экране и т. Д.).

Уловка, которая сработала для меня, состояла в том, чтобы перегрузить метод didRotateFromOrientation: (UIInterfaceOrientation) UIViewController в приложении.Поэтому перегрузите метод из класса UIViewController вашего приложения, который отображается при отображении UIPopoverController, и снова вызовите оттуда метод presentPopoverFromRect: UIPopoverController:

-(void) didRotateFromOrientation:(UIInterfaceOrientation)uiOrientation {
    if (popoverController.popoverVisible) {
        // Define rect to be the UI component's rect where you want to tie the popoverController
        CGRect rect = CGRectMake(...);
        // This method will reposition the popover correctly
        [popoverController presentPopoverFromRect:rect inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:NO];  
    }
}

Обратите внимание, что если вы связываете UIPopoverController с методом UIBarButtonIontrolIPopopPerverIpt с помощью UIPПосле этого система должна автоматически позаботиться о правильном позиционировании поповера после поворота.

...