2012-11-29 1 views
0

홈 화면에 cocos2d를 사용하고 일부 테이블과 정보에 대해 UINavigationController를 사용하는 응용 프로그램을 만들려고합니다. 내가보기CCLayer에 UINavigationController 추가

UINavigationController *controller = [[UINavigationController alloc] init]; 
Settings *newTableViewController = [[Settings alloc] init]; 
[controller pushViewController:newTableViewController animated:YES]; 

이 코드는 CCLayer에서 실행 및 설정이 UINavigationController가 있습니다에 UINavigationController가 (설정)을 밀어하려고이 코드를 사용합니다.

이 오류

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Pushing a navigation controller is not supported'

이는 내가 CCLayer에 NaviagationController을 밀어 수 없다는 뜻거야? 도와주세요.

답변

0

"보기 컨트롤러를 CCLayer로 푸시"할 수 없습니다. cocos2d를 사용하여 수행하는 작업은 모두 하나의 OpenGL보기에서 수행됩니다.

이와 같이 실제로하고 싶다면 응용 프로그램의 루트보기 컨트롤러 생성을 변경할 수 있습니다. 애플리케이션 뷰 컨트롤러를 UIViewController 대신 UINavigationController의 서브 클래스로 만든 다음, 앱 위임자로부터 rootViewController를 가져 와서 언제든지 원하는 다른 뷰 컨트롤러를 푸시/팝하십시오. 어쨌든, 나는 좋은 생각이라고 생각하지 않습니다.

예외에 대한 귀하의 설정 클래스는 UINavigationController의 하위 클래스라고 가정합니다. 네비게이션 컨트롤러에 푸시 할 모든 컨트롤러는 UINavigationController가 아닌 UIViewController에서 파생되어야합니다.

+0

그래, 내가 질문을 게시 한 후에 그것에 대해 생각하고 있었다. 감사! – mattblessed

+0

당신은 환영합니다 =) – Morion

+0

안녕하세요, UINavigationController처럼 UITableView를 움직일 수있는 방법이 있습니까? 예를 들어, iPhone의 설정 응용 프로그램에서 "드릴 다운"하고 셀을 터치하면 전환 애니메이션이 내가 원하는 것입니다. 아이디어가 있습니까? – mattblessed