2010-07-22 5 views
3

SplitViewController 템플릿을 기반으로 새 앱을 만들면 스플릿 뷰에서 정상적으로 작동합니다.UISplitViewController 위에 모달 뷰를 표시하는 모범 사례

내 기본 화면은 비 분할보기 '메뉴'입니다. splitViewController 위에이 'mainMenu'를 모달로 추가하는 것이 가장 좋습니다. (다음 중 하나는 그것이 UISplitViewController을 공개하고 사용하는 제거에는 mainMenu 또는 위가 아닌 다른 분할 뷰를 밀어 넣습니다.) 내가 시도

:

[self.navigationController presentModalViewController:mainMenu animated:NO]; 

그리고

[self presentModalViewController:mainMenu animated:NO]; 

을 viewWillAppear에서 및 rootViewController에 대한 viewWillLoad 메서드 & detailViewController. 두 경우 모두 코드가 오류없이 실행되지만 mainMenu가 나타나지 않으면 일반 detailViewController 및 rootViewController가 나타납니다. (즉, 아무것도 변경하지 않았다 나는 detailView있는 navigationController에 main.xib 파일에있는 navigationController에서 출구를 만들 않았습니다 만.)

내가이 일을 할 수 있었다 어떤 작품을 사용하여, 그러나 그것은 틀린 것처럼 보입니다.

iPad_Prototype_SplitAppDelegate *delegate = (iPad_Prototype_SplitAppDelegate *) [ [UIApplication sharedApplication] delegate]; 

[delegate.splitViewController.view addSubview:mainMenu.view]; 
[delegate.splitViewController.view bringSubviewToFront:mainMenu.view]; 

나는 모달 등 커버 전망을 제시 할 말 많은 응답을 본 적이 있지만 나는 splitViewController 설정에서 올바른 위치 또는 구성을 찾을 수 없습니다. 어떤 도움이나 통찰력에 감사드립니다.

마지막으로,이 접근 방식이 잘못 되었습니까? detailViewController를 교체하고 세로 모드에서 전체 화면을 가져오고 루트 컨트롤러의 메뉴 항목을 추가하지 않으면 안됩니까?

+0

viewDidAppear을 사용해 보셨습니까? –

+0

나는 (내가 설명에서 언급했듯이) 나는 뭔가를 놓치고 있다고 확신한다 ... 또한 로딩 후에도 작동한다. 즉, viewWillAppear 후에 0.01 초 후에 수행 할 메서드 호출을 추가하면 작동합니다 (그러나 전환이 표시됩니다.) – joelm

+0

솔루션을 찾았습니까? – Justin

답변

1

예제와 같이 AppDelegate의 splitViewController가 도움이 될까요?

//AppDelegate.m 
- (BOOL)application:(UIApplication *)application 
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 

MyController *myCont = [[MyController alloc] initMainMenu]; 
// mess around with myCont.view.modalPresentationStyle; 

[myCont setModalDelegate:self]; 
// Create a delegate (<ModalControllerDelegate>) to dismiss view when done 

[self.splitViewController presentModalViewController:myCont animated:NO]; 
[myCont release]; 
} 

// for completion sake 
-(void)modalViewDismiss:(MyController *)modalView { 
    [self.splitViewController dismissModalViewController:YES]; 
} 
+0

스토리 보드를 사용하는 응용 프로그램에서 AppDelegate에서 presentModalViewController를 호출 할 때 presentModalViewController가 작동하지 않는 것 같습니다. – radven