0

스크롤보기 내에 3 개의보기가 있습니다. 다음 코드를 통해 추가했습니다.모달 뷰 컨트롤러 충돌

[self.scrollView addSubview:[aViewController view]]; 

보기를 스크롤 할 때 자체 탐색 컨트롤러가있는 모달보기 컨트롤러를 표시하려고하지만 충돌이 발생합니다. 여기에 내가 얻을 모달보기

MyVC *vc = [[MyVC alloc] initWithNibName:@"VC" bundle:nil]; 
self.navController.modalTransitionStyle=UIModalTransitionStyleCrossDissolve; 
self.navController.viewControllers = [NSArray arrayWithObject:vc]; 
[vc release]; 
[self presentModalViewController:self.navController animated:YES]; 

그리고 충돌을 보여주기 위해 사용하고 코드입니다입니다 : 인해 캐치되지 않는 예외 'NSInternalInconsistencyException', 이유에 응용 프로그램을 erminating '까지 모달 전환을 시작하려고 잠시 전환이 이미 진행 중입니다. ViewDidAppear/viewDidDisAppear가 현재 전환이 완료되었음을 알 때까지 기다리십시오. '

모든 도움을 주시면 대단히 감사하겠습니다.

+0

뷰 컨트롤러보기를 직접 하위보기로 추가하는 것은 좋지 않습니다. 뷰 컨트롤러는 적절한 컨테이너 뷰 컨트롤러에 의해 프레젠테이션, 푸시 (push)되는 등, 뷰 자체를 관리 할 수 ​​있습니다. 직접 뷰를 꺼내면 메모리 누수가 발생할 수 있습니다. – LucasTizma

답변

0

현재 탐색 컨트롤러를 표시 할 수 없습니다. 현재 대신 MyVC의 ViewController

MyVC *vc = [[MyVC alloc] initWithNibName:@"VC" bundle:nil]; 
vc.modalPresentationStyle = UIModalPresentationFormSheet; 
vc.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; [self 
presentModalViewController:vc animated:YES]; 
[vc release]; 

는 또한, 뷰 컨트롤러의 새로운 계층 구조를 만들려면 새 탐색 컨트롤러로 밀어를 표시 할 수 있습니다.

+0

그건 모달 뷰에서 nav 컨트롤러를 얻는 방법입니다. 전에 해 보았습니다. 하지만이 경우에는 오류가 발생하지 않습니다. –

0

내부에서보기 컨트롤러의 내비게이션 컨트롤러를 표시하지 마십시오. 대신 모달 뷰 컨트롤러 용 새 탐색 컨트롤러를 만드십시오.

MyVC *vc = [[MyVC alloc] initWithNibName:@"VC" bundle:nil]; 
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:vc]; 
navigationController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; 

[self presentModalViewController:navigationController animated:YES]; 
[vc release]; 
관련 문제