2

팝업 창에 콘텐츠보기를 표시하는 데 문제가 있습니다. 나는 스토리 보드에서 인스턴스화하는 뷰 컨트롤러로 popover를 설정하기 위해 다음 코드를 사용하고있다. 여기 iPad : 콘텐츠보기가 팝업에 맞게 크기가 조정되지 않았습니다.

MyViewController *viewController = [self.storyboard instantiateViewControllerWithIdentifier:@"MyViewController"]; 
    viewController.contentSizeForViewInPopover = CGSizeMake(382, 502); 
    UIPopoverController *popover = [[UIPopoverController alloc]initWithContentViewController:viewController]; 

    self.popoverController = popover; //self.popoverController is a private property of type UIPopoverController 
    [self.popoverController presentPopoverFromBarButtonItem:self.navigationItem.leftBarButtonItem permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; 

문제가 온다 :있는 나는 팝 오버를 제시하고있어 뷰 컨트롤러는 네비게이션 컨트롤러 내에 내가 올바른 내용으로 올바른 크기의 왼쪽 막대 버튼에게 팝 오버 쇼를 탭하면,하지만 컨텐츠 뷰는 popover 크기로 조정되지 않습니다. "팝 오버 (popover)에 의해 커버 된"컨텐츠 뷰의 스 니핏 (snippet)만이 보입니다.

완벽하게 작동하는 테이블보기에서 동일한 절차를 수행하고 있습니다.이 테이블은 popover에 적합합니다. 나는 또한 그것과 같은 popover 컨트롤러 자체의 크기를 설정하려 시도했다. here. 그리고 영향을받은 View Controller의 스프링 및 스트럿을 사용하여 일부 설정을 시도했습니다. 그러나 결과는 항상 같습니다.

는 지금은 정말 가능성이 잘못/... 실종 HELP :(사전에

감사하고 있어요 제가 시도 수 있는지 아이디어의 부족, 또는!

답변

1

의 TableView가 자체 조정 컨테이너 뷰 컨트롤러의 크기는 그것으로 배치됩니다.있는 UITableViewController의 기능입니다 를. 당신이 UIPopoverController하여있는 TableView를 제시하면 가의 팝 오버는 테이블의 크기를 결정합니다.

이 메커니즘은 모두를 위해 작동하지 않습니다 뷰의 크기를 다음과 같이 설정해야합니다. 잘.

+0

정말 고마워요. 때로는 솔루션이 너무 가까이 있습니다 :) 나는 마침내 귀하의 팁과 [여기]에서 지침 (http://stackoverflow.com/questions/11161909/how-to-use-storyboard-to-make-popover- 사용할 수있는 코드) IBOutlet을 통해 뷰 컨트롤러의 뷰를 연결하고이를 인스턴스화 한 후에 프로그래밍 방식으로 크기를 설정하여 시도했지만, 전혀 작동하지 않았습니다. Interface Builder가 아닌 코드에서 View Controller의 크기를 조정할 수있는 방법을 가르쳐 주시겠습니까? – codingPanda

+0

대단히 환영합니다! 나는 일주일 전에 같은 방식으로 붙어 있었다. 자신의 ViewController에서 뷰의 크기를 조정할 수 있도록하려면 크기 조정 _ 작동해야합니다. 또한 프로세스를 트리거하기 위해'[viewController setNeedsDisplay];를 제공하는 것이 좋습니다.(내 담당자를 향상시키기 위해 대답을 수락하십시오) – uulhaa

+0

대단히 감사합니다. – uulhaa

0

iOS 6과 iOS 7 사이에보기가 예상대로 항상 크기가 조정되는 것은 아니라는 일부 변경 사항이있었습니다. 많은 다른 방법 및 기술을 사용하여 원하는 동작을 제공 할 수 있습니다. 다음은 자동 크기 마스크를 통해 안내를 제공하는 것을 포함 :

// Resizing behaviour 
self.view.autoresizingMask=UIViewAutoresizingFlexibleWidth+UIViewAutoresizingFlexibleHeight; 

을 그리고 때로는 부모보기뿐만 아니라 서브 뷰의 크기를 조정하라고 할 필요가있다.

또한 매트 Neuberg에서
self.view.autoresizesSubviews=YES; 

(프로그래밍 아이폰 OS 7)을 사용하여, 네비게이션 바 (및 도구 모음) 아래에 숨겨진되는 내용을 방지하는 방법을 알려줍니다 다음

:

// Stops the view going underneath the navigation bars 
self.edgesForExtendedLayout=UIRectEdgeNone; 

것은 그 다음이

[self.view setNeedsLayout]; 

다시 그리기에 사용되는 방법입니다. 첫 번째 단계는 이러한 이상하고 멋진 모든 방법이 존재한다는 것을 배우는 것이며, 두 번째 방법은 모두가 당신을 위해 일하기 위해 가장 경제적 인 방법을 찾는 것입니다.

관련 문제