1

내 UIPopOverController가 회전 할 때 (재현 할 수없는 경우) 또는 예를 들어 가로 방향으로 tableview에서 일부 콘텐츠를 열면 해당 장치가 세로 방향으로 회전 한 다음 세로 방향으로 동일한 콘텐츠가 열립니다.회전 할 때 UIPopOverController가 손실 될 때

Popovercontroller가 표시되지만 내용이 보이지 않습니다. 즉, 검은 색입니다. 누군가가이 또는 유사한 것을 발견 했습니까?

+0

지금까지는 아니지만 회전 및 표시 한 후에보기 컨트롤러의보기 프레임을 덤프 할 수 있습니까? 아마도 무언가가 한계를 벗어나거나 제대로 설정되지 않았을 수 있습니다. –

답변

4

회전이 발생한 후 UIPopoverController를 사용할 때 유사한 문제가 발생했습니다 (UIPopoverController의 크기가 이상하게 변경되어 화면의 이상한 곳으로 위치가 변경됨).

나를 위해 일한 트릭은 UIViewController의 didRotateFromOrientation : (UIInterfaceOrientation) 메서드를 앱에서 오버로드하는 것이 었습니다. 다시 방법이에서 : : 그래서 UIPopoverController의 presentPopoverFromRect을 UIPopoverController가 표시 될 때 표시 및 통화중인 앱의 UIViewController 클래스의 메소드를 오버로드

-(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을 묶는 경우 것이 UIPopoverController의 presentPopoverFromBarButtonItem 사용 UIBarButtonItem하는 것을 : 방법은 시스템은 자동으로 회전 후에 popover의 위치를 ​​자동으로 처리합니다.

+0

좋은 해결 방법 ... 더 나은 결과를 얻으려면 popoverContentroller를 다시 표시하기 전에 popoverContentSize 및 contentViewController를 설정하십시오! – Beppe

관련 문제