Могу ли я использовать iOS GLKit без использования полноэкранного режима?

Я запустил шаблон Xcode, используя GLKit, но я намерен иметь окно, показывающее часть представления OpenGL и UIKit для элементов управления.

GLKViewController поставляется с GLKView. Я пошел в IB и удалил GLKView и добавил UIView, поместив новый GLKView сверху с нужным мне размером. Затем я исправил ссылки на GLKView (self.view) и установил меньший делегат GLKView на контроллер представления.

я получил

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[GLKViewController loadView] loaded the "2-view-9XZ-07-hga" nib but didn't get a GLKView.'

Затем я просмотрел документы и обнаружил, что GLKViewController требует GLKView в качестве своего представления. Не удивительно. Да я новичок в этом.

Какой хороший способ использовать GLKit с GLKView размером меньше полноэкранного? Или смешивание UIKit и GLKit еще не сделано?

(обновление: многие люди находят этот вопрос; ответ Дункана, использующий сдерживание контроллера представления, сработал хорошо.)


person Adam Eberbach    schedule 19.04.2012    source источник


Ответы (1)


Вы можете, но GLKit не делает очевидным, как это сделать.

Проблема в том, что GLKViewController разработан таким образом, что его представление содержимого является GLKView, как вы говорите.

У вас есть два варианта.

  1. Создайте GLKView и поместите его в обычный контроллер представления. Это прекрасно работает.

  2. Создайте GLKViewController с GLKView в качестве содержимого и сделайте его дочерним представлением другого контроллера представления, используя новую поддержку родительского/дочернего контроллера представления в iOS 5.

person Duncan C    schedule 19.04.2012
comment
Спасибо, Дункан, родитель/ребенок - это то, что я изучу. - person Adam Eberbach; 20.04.2012