Estoy tratando de presentar un controlador de vista (una vista de tipo de solicitud de código de acceso) cada vez que mi aplicación se activa. Una vez que se ingresa la contraseña correcta, debe salir de la pila. La vista de código de acceso que estoy tratando de presionar no es el controlador de vista inicial, por lo que tengo problemas para acceder a ella desde la aplicaciónDidBecomeActive de AppDelegate.Presentar un controlador de vista específico desde AppDelegate
También he intentado apretar el punto de vista del código de acceso viewWillAppear de mi MainViewController, pero no se consiga llamar cuando la aplicación se activa; solo cuando la pantalla se actualiza.
He estado investigando problemas similares a través de la pareja, así últimos días, pero todavía no estoy entendiendo el método apropiado. He oído que podría no ser capaz de presionar la vista de esta manera porque se puede llamar a la aplicaciónDidBecomeActive antes de que Storyboard o NavigationController estén conectados/inicializados/etc.
Si alguien me podría dar con la forma correcta para empujar/presentar la vista, o si hay algún otro lugar eso sería mejor que hacer este tipo de cosas, se lo agradecería.
Resuelto: Acabo de eliminar la vista del guión gráfico y usé una plumilla en su lugar. Solía:
PasscodeUnlockVC *passcodeUnlock = [[PasscodeUnlockVC alloc] initWithNibName:@"PasscodeUnlockVC" bundle:[NSBundle mainBundle]];
[(UINavigationController *)self.window.rootViewController pushViewController:passcodeUnlock animated:NO];
Ver datos de jerarquía:
(gdb) po [[(id)UIApp keyWindow] recursiveDescription]
<UIWindow: 0x736a4b0; frame = (0 0; 320 480); layer = <UIWindowLayer: 0x7367b40>>
| <UILayoutContainerView: 0x76977a0; frame = (0 0; 320 480); autoresize = W+H; layer = <CALayer: 0x769de60>>
| | <UINavigationTransitionView: 0x7692110; frame = (0 0; 320 480); clipsToBounds = YES; autoresize = W+H; layer = <CALayer: 0x769a8c0>>
| | | <UIViewControllerWrapperView: 0x73868d0; frame = (0 64; 320 416); autoresize = W+H; layer = <CALayer: 0x75510e0>>
| | | | <UIView: 0x76b93e0; frame = (0 0; 320 416); autoresize = W+H; layer = <CALayer: 0x7386850>>
| | <UINavigationBar: 0x73664b0; frame = (0 20; 320 44); clipsToBounds = YES; opaque = NO; autoresize = W; layer = <CALayer: 0x7366550>>
| | | <UINavigationBarBackground: 0x7360ea0; frame = (0 0; 320 44); opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0x7366520>> - (null)
| | | <UINavigationItemView: 0x76b95e0; frame = (160 21; 0 0); opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0x76aa8e0>>
| | | <UINavigationItemButtonView: 0x7550650; frame = (5 7; 73 30); opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0x7368b40>>
Current language: auto; currently objective-c
(gdb)
No estoy familiarizado con el mensaje 'viewDidBecomeActive', y cuando busqué' developer.apple.com' para ella, tengo a ningún resultado. Tal vez deberías decirnos más sobre este método, o incluso mostrarnos tu código. –
Lo siento, quise decir applicationDidBecomeActive. Editaré la publicación. –
Estoy tratando de replicar su vista modal apareciendo, pero me está diciendo pushViewController: no se reconoce animado, ¿me puede decir si lo intentó en iOS 6? – perrohunter