realidad aumentada apps iphone xcode ipad presentmodalviewcontroller

iphone - aumentada - No se puede ver presente ViewController para trabajar



realidad aumentada iphone 8 (5)

Como @Dondragmer dijo, si quiere presentar su viewController en viewDidLoad de la vista raíz, fallará. Una vez que su viewController esté listo para eso, puede presentar su nuevo viewController. Entonces, puedes hacer eso en

- (void)viewDidLayoutSubviews { //present here }

Copié una clase de viewcontroller de trabajo de otro proyecto en un nuevo proyecto. No puedo ver la vista para cargar en el nuevo proyecto. En el proyecto anterior, utilicé presentModalViewController. En el nuevo, no puedo obtener la vista para cargar utilizando presentModalViewController o presentViewController

Estoy tratando de cargar el presente la vista desde mi controlador de vista principal.

Aquí es donde se ve mi interfaz de controlador de vista principal ...

// ViewController.h #import <UIKit/UIKit.h> #import "RequestDialogViewController.h" @interface ViewController : UIViewController <RequestDialogViewControllerDelegate> { } - (void)requestDialogViewDidDismiss:(RequestDialogViewController *)controller withResponse:(NSString*)response;

Estoy usando presentModalViewController así ...

RequestDialogViewController *requestIPViewController = [[RequestDialogViewController alloc] initWithNibName:@"RequestDialogViewController" bundle:nil]; navigationController = [[UINavigationController alloc] initWithRootViewController:requestIPViewController]; [self presentModalViewController:navigationController animated:YES];

y presentViewController así ...

RequestDialogViewController *requestIPViewController = [[RequestDialogViewController alloc] initWithNibName:@"RequestDialogViewController" bundle:nil]; [self presentViewController:requestIPViewController animated:YES completion:nil];

¿Qué me estoy perdiendo en el nuevo proyecto? El método init se dispara, pero viewDidLoad no y no se muestra nada.

Gracias


Lo tengo resuelto. Estaba tratando de presentar la vista desde la vista hizo la carga del controlador de vista principal. No estoy seguro de por qué no funciona allí, pero ahora estoy configurando un temporizador que llama a un método para presentar el controlador de vista después de que se carga la vista principal y funciona bien ahora usando ...

[self presentViewController:requestIPViewController animated:YES completion:nil];

Gracias a los que respondieron.


Me encontré con el mismo problema. Pero mi situación es la presentViewController Se llama a ViewController después de dismissViewControllerAnimated ViewControllerAnimated para otro ViewController. Mi solución es mover el presente presentViewController al bloque de finalización de dismissViewControllerAnimated .


Presente un modalViewController:

Para el beneficio de todos los programadores iniciales, escríbalo en lugar de copiar y pegar.

myVC *viewController = [[myVC alloc]initWithNibName:@"myVC" bundle:nil]; viewController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; [self presentModalViewController:viewController animated:YES]; [viewController release];

Parece que estabas tratando de presentar un controlador de navegación como controlador de vista en la primera muestra, y luego estabas usando el método incorrecto en la segunda.


Si ViewController es el controlador de la vista raíz, no puede presentar un controlador de vista modal desde su propia viewDidLoad , porque en ese momento no tiene información como el tamaño de la pantalla.

Si ya se han mostrado otros controladores de vista, esto funcionará. Si el controlador de vista raíz es un UINavigationController , verá una vista que se desliza desde la derecha mientras que la vista modal se desliza hacia arriba desde la parte inferior.

De todos modos, para su ViewController , lo más pronto que podría presentarlo es después de que se haya vuelto visible. Usar un temporizador para esto no es confiable; los dispositivos más viejos y más lentos tienen tiempos de carga dramáticamente más largos.

Para mayor confiabilidad, implemente viewDidAppear: para ViewController . Todavía use su sistema de temporizador para agregar un retraso adicional; una fracción de segundo debería ser suficiente. Aunque presentar el controlador de vista modal desde viewDidAppear funcionó para mí en el simulador de iOS 5.1, la presentación de un controlador de vista modal al cargar otro ViewController indica que a veces no ocurre.