Estoy desarrollando una aplicación para el iPhone, tengo un UIViewController clase donde algunos coverflow animaciones están ahí, y que de acuerdo con el diseño que tengo unos 5 botones en la parte superior de mi punto de vista cada botón tiene una IBAction método de hacer clic en un botón tengo que mostrar un conjunto diferente de coverflow con diferentes datos y el conde de coverflow también cambia de 1 botón de acción a otra. Mi problema es ¿cómo puedo actualizar mi página(recargar) en haga clic en estos botones, como 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.

OriginalEl autor George | 2011-10-11

6 Comentarios

  1. 6

    La manera más fácil para obtener una vista para volver a dibujar en sí es llamar a [UIView setNeedsDisplay] o mediante el uso de [UIView setNeedsDisplayInRect]. Este método indica el punto de vista de que es necesario volver a dibujarse a sí mismo y es subvistas. Sin embargo, usted no siempre tiene que llamar a este. Hay otros métodos que pueden causar vistas a rediseñar a sí mismos. Por ejemplo, si se agrega o elimina una vista a la vista de jerarquía utilizando [UIView addSubview:] o [UIView removeFromSuperview].

    Estos métodos provocar que el sistema llame a su vista drawInRect: método (suponiendo que lo anuló con código personalizado de dibujo). Si usted no invalidar este método para dibujo personalizadas, a continuación, se debe hacer que sus subvistas a recibir el mismo mensaje, de modo que se puede obtener una oportunidad para volver a dibujar.

    Información adicional aquí. Específicamente lea la sección llamada «El Dibujo de la Vista de Ciclo».

    http://developer.apple.com/library/ios/#documentation/uikit/reference/uiview_class/uiview/uiview.html

    OriginalEl autor Carter

  2. 3

    ¿Por qué quieres volver a cargar la página?, si es porque te están cambiando su punto de vista y desea que se vuelva a dibujar, usted puede llamar a:

    setNeedsDisplay();

    Pero que a menudo no es necesario, como siempre una de las vistas de los límites de cambio que se llama de forma automática para usted.

    impresionante una ayudó mucho
    Una vez que un valor booleano es cambiado. Necesito habilitar/deshabilitar un botón. Iba a llamar a setNeedsDisplay después de la booleano llegar cambiado lo suficiente? Mi vista se lee utiliza la propiedad booleana para decidir. Huelga decir que estoy haciendo esto, pero no funciona

    OriginalEl autor Oscar Gomez

  3. 1

    Si hay demasiado en otras cosas en lugar de actualizar/recargar la parte de su interés en el método viewDidLoad, se puede extraer la parte refrescante en un método privado, decir methodA. Cada vez que haga clic en su botón de llamada que methodA. Sin embargo creo que methodA todavía necesita llamar setNeedsDisplay o re-dibujar la parte de su interés. Espero que ayude.

    OriginalEl autor Tony Xu

  4. 0
    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 el ciclo de vida de los métodos que no debe ser llamado por su propio código.
    entonces, ¿cómo podría actualizar el controlador de vista? por favor explique @nobre
    Depende del contexto. El OP mencionar algunos personalizado coverflow aplicación que probablemente utiliza un sistema de delegado/origen de datos para proporcionar el contenido, por lo que el mejor sería el uso de su propio mecanismo de invalidación como reloadData. En general, sin embargo, se debe extraer el código que se utiliza en viewDidLoad o viewWillAppear el que se crea la interfaz de usuario a otro método, y llamar a eso una vez cuando sea necesario. Recuerde que las restricciones no se pueden añadir de nuevo. Usted puede removeFromSuperview el elemento y añadir de nuevo.
    nunca se debe llamar el ciclo de vida de los métodos explícitamente

    OriginalEl autor NandhaKumar

  5. -9

    Uso de la función viewWillAppear().Esta función es llamada cada vez que la vista se llama.

    ViewWillAppear se ejecuta en la carga de la Vista, es no iniciar el recargar/actualizar. Utilice [auto.ver setNeedsDisplay];

    OriginalEl autor Sup

Dejar respuesta

Please enter your comment!
Please enter your name here