Estoy usando un SplitViewController que no puede ser parte de un controlador de navegación. Estoy usando SetRootViewController en un IBAction, lo cual está bien, pero no está animado. Idealmente, me gustaría utilizar la misma animación que hace el controlador de navegación (deslizar desde la izquierda/derecha) pero si eso no es posible, me gustaría usar una animación consistente siempre que necesite hacer esto.¿Se puede animar setRootViewController?
Respuesta
No estoy seguro de esto, pero sugeriría lo siguiente.
Conjunto del UISplitViewController
como sus UIWindow
's rootViewController
. En el viewDidLoad
, realiza una llamada presentModalViewController:animated:
con el botón UIViewController
como modal. Asegúrate de no animarlo. Esto le da la ilusión de que la vista modal es la primera que ve cuando se inicia la aplicación. Cuando presiona el botón, anima el botón UIViewController
con dismissModalViewControllerAnimated:
. Ahora puedes elegir cómo animar. Una de tus elecciones es cruzar el flujo.
Esa es una solución realmente creativa, la probaré y le contaré cómo me llevo. – glenstorey
Esto funcionaría, y es una gran manera de abordar el problema, para que obtengas la respuesta correcta, pero no estoy seguro de si realmente lo usaré. Se siente un poco desordenado y rompe el flujo de diseño previsto un poco; especialmente porque el SVC solo se usa en una parte de la aplicación. – glenstorey
@Dries De Smet-- intenté con lo que sugería, escribí el código para presentModalViewController: animado: en el ViewDidLoad del Svc y lo descarté en btnClick ... pero cuando se descarta el VC y se presenta Svc el Svc ViewDidLoad: es llamado de nuevo como resultado de presentModalViewController: animado: siendo llamado, y el Vc se muestra de nuevo. Estoy haciendo algo mal. – Bonnie
Usando iOS 5.0 podrá usar presentViewController:animated:completion
para presentar SplitViewController desde su rootViewController inicial.
iOS anterior 5.0 su única posibilidad es utilizar el método transitionFromView:toView:duration:options:completion
en la vista de rootViewController, lo que significa que tendrá que esforzarse para pasar varios mensajes a su SplitViewController manualmente. iOS anterior 5.0 no es compatible con contenedores ViewControllers.
Pero probablemente desee replantear su diseño. Debe establecer SplitViewController como rootViewController inicialmente. Al iniciar la aplicación (o siempre que lo necesite) debe presentar su LoginViewController de forma modal. Cuando el usuario inicia sesión con éxito, oculta su vista modal con la animación que desee.
Dado que SplitViewController es su ViewController principal, debe ser el controlador raíz de su aplicación.
Su solución es correcta, pero no estoy de acuerdo con el replanteamiento del diseño. Lo que está tratando de hacer es absolutamente lógico. En muchas situaciones, su solución sugerida no funcionaría. Usamos el mismo diseño, escribiendo nuestro propio mecanismo de cambio de pantalla y nuestro propio controlador de vista dividida (que es realmente muy fácil). – Sulthan
Gracias por su respuesta Ben-G. Cuando intento [appDelegate.window setRootViewController: splitViewController]; [splitViewController presentViewController: splitViewController animado: YES finalización: NULL]; Aparece el error 'La aplicación intentó presentar un Split View Controllers modally
En relación con [link] (http://stackoverflow.com/questions/2579861/split-view-controller-must-be-root-view-controller), SplitViewController es un caso especial que no se puede presentar de forma modal. Lamentablemente, tendrá que ir con la solución alternativa o usar el método 'transitionFromView: toView:', manejando el mensaje que pasa al splitViewController por su cuenta. –
- 1. Cómo se puede animar un sprite en SFML
- 2. - UIWindow setRootViewController: equivalente en pre 4.0
- 3. Animar
- 4. ¿por qué jquery no puede animar el número con precisión?
- 5. Animar removeFromSuperview
- 6. Parece que no se puede obtener la barra de progreso para animar
- 7. ¿Animar a UILabel pulsante?
- 8. Android: animar un rectángulo
- 9. Animar marginLeft con jQuery
- 10. ObjectAnimator animar LinearLayout anchura
- 11. Android: Animar Ver posición
- 12. ToggleClass animar jQuery?
- 13. Propiedades de Android que se pueden animar con ObjectAnimator
- 14. Cómo animar un UIBezierPath
- 15. jQuery animar altura a auto
- 16. Animar UIView frame.origin
- 17. jquery "animar" valor variable
- 18. jQuery animar margen superior
- 19. Cómo animar una ventana?
- 20. jQuery animar a transparente
- 21. Animar un MKOverlayView
- 22. Animar ciertos artículos ListView
- 23. Cómo animar un favicon?
- 24. Cómo animar marcador cuando se agrega al mapa en Android?
- 25. Jquery animar ocultar y mostrar
- 26. cómo animar a jquery load()
- 27. Comportamiento extraño al animar UITextField
- 28. Animar elemento eliminado en Listbox
- 29. Animar filas en un NSTableView
- 30. WPF: Animar control de usuario en carga
¿Puede dar más detalles sobre lo que quiere? ¿Desea animar UISplitViewController como UINavigationController cuando y dónde? –
El Svc se carga desde una ibaction en la primera pantalla, un controlador de vista después de que un usuario hace clic en un botón. Quiero que el Svc se anime, ya sea un empuje o una disolución cruzada o algo así. – glenstorey