2012-04-19 2 views
7

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

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 просто не сделано?

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

ответ

8

Вы можете, но GLKit не делает это очевидным, каким образом.

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

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

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

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

+0

Спасибо Дункан, родители/ребенок - это то, что я буду изучать. –

Смежные вопросы