Добавить UINavigationController в CCLayer

Я пытаюсь создать приложение, которое использует cocos2d для домашнего экрана и UINavigationController для некоторых таблиц и информации. Я использую этот код, чтобы попытаться выдвинуть UINavigationController (Settings) в поле зрения

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

Этот код выполняется в CCLayer, а Settings - в UINavigationController.

Я получаю эту ошибку

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

Означает ли это, что я не могу вставить NaviagationController в CCLayer? Пожалуйста помоги.


person mattblessed    schedule 29.11.2012    source источник


Ответы (1)


Вы не можете «подтолкнуть контроллер представления к CCLayer». Все, что вы делаете с помощью cocos2d, происходит внутри одного представления OpenGL.

Если вы действительно хотите сделать что-то подобное, вы можете изменить создание корневого контроллера представления приложения. Сделайте свой контроллер представления приложения подклассом UINavigationController вместо UIViewController, затем просто получите rootViewController от делегата вашего приложения и вставьте / вставьте в него любой другой контроллер представления, когда захотите. В любом случае, я не думаю, что это хорошая идея.

Что касается вашего исключения, я предполагаю, что ваш класс настроек является подклассом UINavigationController. Все контроллеры, которые вы хотите передать в контроллер навигации, должны быть производными от UIViewController, а не от UINavigationController.

person Morion    schedule 29.11.2012
comment
Да, я думал об этом после того, как разместил вопрос. Спасибо! - person mattblessed; 30.11.2012
comment
Привет, есть ли способ оживить UITableView, как это сделал бы UINavigationController? Например, в приложении настроек на iPhone, когда вы переходите вниз и касаетесь ячейки, я бы хотел создать анимацию перехода. У тебя есть идеи? - person mattblessed; 02.12.2012
comment
пример анимации uikit stackoverflow.com/questions / 2055197 / - person Morion; 02.12.2012
comment
Как я могу применить CCTransitions к uikit? Потому что, когда я пытаюсь изменить сцены с помощью встроенных переходов cocos2d, он просто переходит на второй экран без перехода. - person mattblessed; 03.12.2012