1

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

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

+0

Пока нет, но можете ли вы сбросить рамку представления контроллера вида после поворота и показа? Возможно, что-то не работает/не устанавливается должным образом. –

ответ

4

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

Трюк, который сработал для меня, заключался в том, чтобы перегрузить метод URiewController didRotateFromOrientation: (UIInterfaceOrientation) в приложении. Так перегрузить метод из класса 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 к UIBarButtonItem с использованием UIPopoverController в presentPopoverFromBarButtonItem: метод, то система должна автоматически автоматически позаботиться о правильном позиционировании после поворота.

+0

Хорошее обходное решение ... Для лучшего результата установите popoverContentSize и contentViewController перед тем, как снова представить popoverController !! – Beppe