2011-02-24 7 views
2

UIModalPresentationFormSheet보기 스타일을 사용하는 iPad 앱에 모달 viewController를 표시하려고합니다. 메일 응용 프로그램 새 메시지 UI/애니메이션과 비슷한 것을 만들려고합니다. 항상 보기의 맨에 즉, Y = 0으로 애니메이션과는에서와 같이 상태 표시 줄 아래에없는 일부 픽셀 모달의 ViewController 제공됩니다 :UIModalPresentationFormSheet, dim is missing

올바르게 행동하지 않는 두 가지가 있습니다 메일 응용 프로그램.

설명서를 말한다

UIModalPresentationFormSheet 제시된 도면의 폭과 높이 뷰가 화면 중앙에 스크린들과 보다 작다. 장치가 가로 방향이고 키보드가 인 경우보기의 위치가 으로 조정되어보기 이 계속 표시됩니다. 표시되지 않은 모든 영역 은 사용자가 과 상호 작용하지 못하도록 흐리게 표시됩니다.

하지만, 내 경우에는 디밍이없는 나는 여전히 modalViewController 아래 parentView와 상호 작용할 수 있습니다. modalView를 제공

컨트롤러는 I이 수행하십시오의 ViewController에서

AddNewItemViewController *newItemViewController = [[AddNewItemViewController alloc] initWithNibName:@"AddNewItemViewController" bundle:nil]; 
[self presentModalViewController:newItemViewController animated:YES]; 
[newItemViewController release]; 

것이되게하고 나는이 작업을 수행 :

- (void)viewDidLoad { 

    [nameField becomeFirstResponder]; 
    [self setModalTransitionStyle:UIModalTransitionStyleCoverVertical]; 
    [self setModalPresentationStyle:UIModalPresentationFormSheet]; 
    [super viewDidLoad]; 
} 

나는 누군가가 나를 도울 수 있기를 바랍니다.

부모 및 modalViewController를 설정해야하는 다른 속성이 있습니까?

viewDidLoad는이 설정을 수행하기에 적합한 장소가 아닙니까? 당신이 모달 뷰를 만들 때 presentModalViewController를 호출하기 전에 사전에

감사합니다 :)

답변

3

당신은, 전환 및 프리젠 테이션 스타일을 설정합니다. 모달 뷰를 생성하는 뷰는 그 객체를 '소유'한다는 것을 기억하십시오. 애플리케이션의 다른 위치에서이 모달 뷰를 구현할 수 있고 다른 전환 또는 프리젠 테이션 스타일을 원하기 때문에 소유자가 이러한 속성을 설정하기를 원합니다. 이렇게하면 매번 적절하게 설정합니다.

AddNewItemViewController *newItemViewController = [[AddNewItemViewController alloc] initWithNibName:@"AddNewItemViewController" bundle:nil]; 
    newItemViewController.modalPresentationStyle = UIModalPresentationFormSheet; 
    [self presentModalViewController:newItemViewController animated:YES]; 
    [newItemViewController release]; 

viewDidLoad에서 becomeFirstResponder를 호출하는 것이 좋습니다.

+0

Spot on. 감사합니다, 그것은 좋은 의미가 있습니다. – RickiG

+0

@RickiG 또는 @W Dyson - 희미한 배경 문제를 해결 했습니까? – zekel