Я работаю над приложением, в котором я хотел бы использовать cocos2d на главном экране приложения, но не в другом месте (в других местах стандартный материал UIKit более уместен). Итак, мой EAGLView настроен в качестве корневого представления в UINavigationController, и когда пользователь нажимает в нужном месте, я помещаю новый контроллер представления в навигационный контроллер.
Пока все отлично работает. Материал cocos2d / chipmunk на домашнем экране работает отлично, поэтому новый контроллер представления работает, как и ожидалось.
Но когда я возвращаюсь к исходному виду, там ничего нет. Все, что я вижу, это фон окна и панель навигации.
Я установил точку останова в -viewDidAppear контроллера корневого представления: чтобы увидеть, что происходит после всплывающего окна, и пока все выглядит нормально (или, по крайней мере, так же, как это было до нажатия).
Push - это просто стандартное нажатие навигационного контроллера. Я не вижу каких-либо предупреждений памяти. У кого-нибудь есть мысли о том, что происходит?
Есть простой демонстрационный проект, который показывает это поведение на http://cl.ly/1Q050s0h2k47032K1Y1N
Это основано на шаблоне проекта cocos2d + chipmunk. Нажмите на Grossini и новый контроллер представления помещается в стек. Нажмите кнопку «Назад», и Гроссини исчезнет.
И просто, чтобы сделать это интересным, эта проблема существует только на устройстве iOS (я использую 4.1), а не в симуляторе.