when objective appears iphone ios uiscrollview modal-dialog

iphone - move view up when keyboard appears objective c



Descartar cambios de vista modal subyacentes a UIScrollView (1)

-[UITransitionView transition:fromView:toView:]

Es perfectamente normal para la transición del modal a su vista. Esta es la animación, etc., prueba modal con animación si crees que eso puede marcar la diferencia.

Eche un vistazo a su viewWillAppear : viewWillAppear , WillDisappear , DidAppear... Incluso la Load y Unload si corresponde, aunque es poco probable que se requiera su prueba trivial sin nada en el modal. Intente colocar un registro en esos métodos para ver cuál se llama.

¿También está diciendo que no hay un código personalizado en esos métodos, o que su controlador no los reemplaza en absoluto? Podría marcar la diferencia.

Debe haber algo básico que me falta aquí. Tengo un UIScrollView abierto, que está controlado por un cliente UIScrollViewController (llamado DataController). En un momento dado, se necesita la entrada del usuario, así que abro un UIViewController modal desde el DataController:

ElementSelectController *viewController = [[ElementSelectController alloc] initWithNibName:@"ElementSelectController" bundle:nil]; viewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical; viewController.theDelegate = self; [self presentModalViewController:viewController animated:YES];

Una vez que el usuario está listo con la vista modal, se descarta nuevamente. Esto también ocurre desde DataController:

[self dismissModalViewControllerAnimated:YES];

Todo esto funciona bien Pero cuando la vista modal se va, resulta que el UIScrollView subyacente se redimensiona a pantalla completa y se desplaza a la posición (0,0). Este es el caso incluso con una vista modal simple que no hace más que descartar. Obviamente, quiero que UIScrollView permanezca en el mismo estado y tamaño que antes de que apareciera la vista modal.

¿Alguna idea de lo que estoy haciendo mal?

Comprobé el seguimiento de la pila cuando se establece el marco UIScrollView (a través de un punto de corte en setFrame: de un UIScrollView personalizado), y parece que se llama desde:

-[UITransitionView transition:fromView:toView:]

que se llama vía, vía desde la llamada dismissModalViewControllerAnimated.