Ну, я думаю, что решил проблему, поэтому я поделюсь с вами решением.
Я начал с примера с несколькими представлениями из книги: три xib (главное окно и два переключаемых представления), приложение. делегат, два контроллера представления для каждого представления и корневой контроллер представления, которые переключаются между нашими представлениями.
Я добавил класс EAGLView и средство визуализации в этот проект и изменил метод initWithCoder в EAGLView на initWithFrame:
//- (id) initWithCoder:(NSCoder*)coder
- (id)initWithFrame:(CGRect)frame
{
if ((self = [super initWithFrame:frame])) {
// The same we had.
Затем в моем контроллере корневого представления я добавил IBAction при нажатии кнопки:
- (IBAction)drawEAGLView:(id)sender {
CGRect rect = [[UIScreen mainScreen] applicationFrame];
glView = [[EAGLView alloc] initWithFrame:CGRectMake(rect.origin.x, rect.origin.y, rect.size.width, rect.size.height)];
self.view = glView;
[glView startAnimation];
}
И это все. Очень просто и хорошо работает. Может быть, нужна некоторая оптимизация, но это хорошая отправная точка.
Итак, теперь я могу сделать мой рейтинг: D