2011-10-11 3 views
1

UIImagePicker에서 UIPopoverController까지 표시되는 iPad 앱이 있습니다. popovercontroller를 전체 화면으로 만들거나 가능한 한 크게 만들고 싶습니다.전체 화면 iPad UIPopoverController

저는 presentPopoverFromRect 메서드를 사용하여 결과가없는 다양한 너비와 높이로 설정된 CGRect이라는 새로운 메서드를 사용하고 있습니다. imagepicker의 소스는 UIImagePickerControllerSourceTypePhotoLibrary입니다.

UIPopoverController* popoverController = [[UIPopoverController alloc] initWithContentViewController:photoPicker]; 
popoverController.delegate = self; 
popoverController presentPopoverFromRect:CGRectMake(0, 0, 2500, 2500) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; 

이 전체 화면을 만들 수 있습니까? Sourcetype UIImagePickerControllerSourceTypeCamera은 어떻습니까?

답변

1

popovercontroller에 배치 된 인 viewcontroller에서 팝업 크기를 설정하려면 -contentSizeForViewInPopover을 재정의 할 수 있습니다.

presentPopoverFromRect은 크기를 설정하는 것이 아니라 팝 오버가 열리는 프레임을 정의하는 데 사용됩니다.

+0

그런 다음 UIImagePickerController를 확장하고 거기에 -contentSizeForViewInPopover 메서드를 추가해야합니다. 이것이 크기를 설정하는 유일한 방법입니까? – Jovan

+0

'UIImagePickerController'는'UIViewController'에서 상속되므로 이미'-contentSizeForViewInPopover'를 구현했습니다. popover 컨트롤러에로드하기 전에'popoverController.contentSizeForViewInPopover = CGSizeMake (w, h);'를 사용하십시오. – Bartek

0

대신 ModalViewController가 필요할 수도 있습니다. 이 사람은 4 가지 presentationstyles (그들 중 하나가 전체 화면)

좋은 예는이 질문에 기록 된 프로토 타입이 있습니다 presentModalViewController fullscreenmode issue

(그것은 // --- 편집 --- //에있어)

그것이 당신에게 적합한 지 확인하십시오.

+0

이것은 작동하지 않습니다. 그 말은 예외적 인 말을하기 전까지 처음 시도한 것입니다 : 'iPad에서는 UIIpageController를 통해 UIImagePickerController를 제시해야합니다' – Jovan

1

난 그냥이 코드는 아이 패드 1과 아이 패드 4에 작동하는지 확인 (이것은 아이폰 OS 5.1.1에서 지원됩니다 의미 - 6.1.2)

popover = [[UIPopoverController alloc] initWithContentViewController:yourVC]; 
    [popover setPopoverContentSize:CGSizeMake(1024, 1024)]; 

    [popover presentPopoverFromRect:CGRectZero 
             inView:appDelegate.splitViewController.view 
        permittedArrowDirections:UIPopoverArrowDirectionAny 
            animated:YES]; 

당신은 그것이 팝 오버를 닫 어려운 점에 유의해야한다 가로 또는 세로로 "화면을 채울"것이기 때문입니다.

- (BOOL)shouldAutomaticallyForwardRotationMethods { 

    NSLog(@"MG - shouldAutomaticallyForwardRotationMethods"); 
    return YES; 
} 

- (BOOL)automaticallyForwardAppearanceAndRotationMethodsToChildViewControllers { 

    NSLog(@"MG - automaticallyForwardAppearanceAndRotationMethodsToChildViewControllers"); 
    return YES; 
} 

그냥 숨기기 취소 /이 함께 기각 yourVC의 모서리에있는 버튼을 숨기 : 내 appDelegate.splitViewController에서 이러한 방법이 있습니까

[popover dismissPopoverAnimated:YES]; 

또한 주목해야한다 "팝 오버" 강한 재산이거나 선물하려고 할 때 할당 취소 된 메시지를 받게됩니다.

관련 문제