Estoy desarrollando una aplicación para iPhone, tengo una clase UIViewController
donde hay algunas animaciones de flujo de tapa y de acuerdo con el diseño tengo unos 5 botones en la parte superior de mi vista cada botón tiene un método IBAction
al hacer clic en un botón que necesito para mostrar diferentes conjunto de flujo de cobertura con diferentes datos y el recuento de flujo de cobertura también cambia de acción de 1 botón a otro. Mi problema es cómo puedo actualizar mi página (volver a cargar) al hacer clic en estos botones, ya que sé que llamar explícitamente viewDidLoad
es una muy mala idea, así que ¿cómo puedo lograr esto? Cualquier ayuda se agradece de antemano gracias.¿Cómo recargar mi UIViewController al hacer clic en algunos botones?
Respuesta
La manera más fácil de obtener una vista para volver a dibujar es llamar a [UIView setNeedsDisplay] o utilizando [UIView setNeedsDisplayInRect]. Este método le dice a la vista que necesita volver a dibujarse a sí mismo y sus subvistas. Sin embargo, no siempre deberías tener que llamar a esto. Existen otros métodos que pueden provocar que las vistas se redisen. Por ejemplo, si agrega o quita una vista a la jerarquía de vista usando [UIView addSubview:] o [UIView removeFromSuperview].
Estos métodos hacen que el sistema llame al método drawInRect: de su vista (suponiendo que lo sobreescribe con un código de dibujo personalizado). Si no anuló este método para el dibujo personalizado, debería hacer que sus subvistas reciban el mismo mensaje para que puedan tener la oportunidad de volver a dibujar.
Información adicional aquí. Lea específicamente la sección titulada "El ciclo de visualización de dibujos".
¿Por qué quiere para recargar la página ?, si es porque va a cambiar su punto de vista y desea que se vuelva a dibujar, puede llamar a:
setNeedsDisplay();
Pero que a menudo no es necesario, como se cada vez que cambian los límites de una vista, se llama automáticamente.
Uso viewWillAppear función(). Esta función se llama cada vez que la vista se llama.
viewWillAppear se ejecuta en la carga de la vista, no se inicia la recarga/actualización Use [self.view setNeedsDisplay]; – Vincent
Si hay demasiadas cosas en lugar de actualizar/volver a cargar la parte de su interés en su método viewDidLoad, puede extraer la parte refrescante en un método privado, digamos methodA. Cada vez que hace clic en su botón, llama a ese método A. Sin embargo, creo que el métodoA todavía necesita llamar a setNeedsDisplay o volver a dibujar la parte de su interés. Espero eso ayude.
Si el punto es refrescar "UIViewController", entonces:
[self viewDidLoad];
To Refresh your UIViewController, When Clicking the button >>
Add the below code into your UIButton method,
-(IBAction)button:(id)sender{
[self viewDidLoad];
[self viewWillAppear:YES];
}
Now Build and Run Your Code.
Esos son métodos de ciclo de vida que su propio código no debe invocar. – nobre
¿cómo podrías actualizar el controlador de vista? por favor explique @nobre – NandhaKumar
Depende del contexto. El OP menciona alguna implementación de flujo de cobertura personalizada que probablemente usa un sistema de delegado/fuente de datos para proporcionar el contenido, por lo que lo mejor sería usar su propio mecanismo de invalidación, como reloadData. Sin embargo, en general, debe extraer el código que usa en viewDidLoad o viewWillAppear que construye la interfaz de usuario para otro método, y llamarlo en su lugar cuando sea necesario. Recuerde que las restricciones personalizadas no pueden agregarse nuevamente. Puede eliminar desde Supervisión el elemento y agregarlo nuevamente. – nobre
- 1. Cómo recargar UIViewController
- 2. Rotar texto al hacer clic en evento
- 3. destino al hacer clic
- 4. Cómo hacer botones redondos
- 5. Cómo hacer que mi función de 'clic' funcione con iOS
- 6. Restablecer setinterval al hacer clic
- 7. al hacer clic en evento en wx.Panel?
- 8. jQuery UI - los botones del teclado no siempre funcionan al hacer clic por primera vez
- 9. cómo hacer que se haga clic en mi imagen
- 10. Eliminar DIV al hacer clic
- 11. ¿Cómo hacer que el botón no se pueda hacer clic después de hacer clic en él?
- 12. Datagridview causando IndexOutOfRangeException al hacer clic en
- 13. al hacer clic con href en JSP
- 14. markerClusterer al hacer clic en el zoom
- 15. ¿Cómo abrir una ventana al hacer clic en NSStatusItem?
- 16. ¿Cómo agregar botones dinámicamente a mi formulario?
- 17. Cómo recargar CSS al usar Less.js
- 18. Cómo actualizar múltiples vistas parciales al hacer clic en Ajax.Actionlink
- 19. ¿Cómo paso el evento al hacer clic en una vista?
- 20. Cómo llamar a jQuery AJAX al hacer clic en evento?
- 21. ¿Cómo se maneja un botón al hacer clic en Android?
- 22. JQuery JEditable - Cómo deshabilitar al hacer clic en edición
- 23. Auto-Launch JNLP al hacer clic
- 24. ¿Cómo hacer botones en python/pygame?
- 25. Demora de tiempo al hacer clic
- 26. Android: ¿Genera colores aleatorios al hacer clic?
- 27. Jquery cambiar imagen al hacer clic
- 28. d3 javascript colores alternativos al hacer clic
- 29. ¿Al hacer clic en el elemento principal, también se puede hacer clic en el elemento secundario?
- 30. Deshabilitar botón al hacer clic, pero habilitar otro botón
una impresionante ayudó mucho – Yohan