Я смотрю на примеры дополненной реальности, используя ARKIT. Я пытаюсь добавить кнопку в верхней части экрана камеры, чтобы закрыть ее, чтобы она перешла на предыдущий экран. Когда я пытаюсь отклонить вид, камера выключается и останавливается / останавливается на анимации закрытия затвора камеры. (в этот момент я все еще вижу кнопку, если я нажимаю ее снова, приложение вылетает).
Текущая настройка выглядит следующим образом: Вид главного меню -> ARViewController -> Контроллер дополненной реальности. Может быть, кто-то может сказать мне, где я иду не так? или как, если есть более простой способ принудительно закрыть все виды и отобразить главное меню.
Вот код:
Главное меню
if([ARKit deviceSupportsAR])
{
ARViewController *viewController = [[ARViewController alloc] initWithDataSource:self];
viewController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:viewController animated:YES];
[viewController release];
}
ARViewController
.h
AugmentedRealityController *agController;
.m
- (void)loadView {
self.agController = [[AugmentedRealityController alloc] initWithViewController:self];}
- (void)viewDidAppear:(BOOL)animated
{
[agController displayAR];
}
- (void) scanButtonPressed { //action when button is pressed
[agController hideAR]; //dismiss camera
[self dismissModalViewControllerAnimated:YES]; //dismiss current view
}
Контроллер дополненной реальности
- (void) hideAR {
[[self locationManager] stopUpdatingHeading];
[[self locationManager] stopUpdatingLocation];
[[self accelerometerManager] release];
[rootViewController dismissModalViewControllerAnimated:YES];
}
// This is needed to start showing the Camera of the Augemented Reality Toolkit.
-(void) displayAR {
[rootViewController presentModalViewController:[self cameraController] animated:NO];
[displayView setFrame:[[[self cameraController] view] bounds]];
}
(исходный код проекта https://github.com/kypselia/ARKit/blob/d4c018ce74e7c1abd786b6faa71d76435e52246f/ARKit/ARViewController.m)