Pregunta

Supongamos que en una aplicación que tiene 2 UIButton de, buttonA y buttonB. Si desea llamar a la FlipsideViewController de estos 2 botones, donde la única diferencia será las imágenes de fondo. (Es decir, si se pulsa .: buttonA, backgrounda aparecerá en opinión del FlipsideViewController, de lo contrario, será BackGroundB.)

Ahora, el primer fondo (backgrounda) está configurado por defecto. ¿Cómo manejo la segunda imagen de fondo (BackGroundB) si se pulsa buttonB?

¿Fue útil?

Solución

Dependiendo de cómo se está presentando FlipsideViewController, un par de maneras son:

  • Marca "fondo" una propiedad de FlipsideViewController y la puso como sea necesario en el método de acción de cada botón antes de mostrar el VC.
  • Añadir un método init costumbre en FlipsideViewController con un parámetro de "fondo".

"fondo" podría ser una propiedad / parámetro int o enumeración y luego el código de FlipsideViewController hará lo que sea necesario en sí en base a ese valor.

Editar
Para utilizar el enfoque de la propiedad:

En primer lugar, en FlipsideViewController, asegúrese de que tiene una IBOutlet para la UIImageView llamada digamos backgroundImageView.

A continuación, en FlipsideViewController.h, añadir un alojamiento a establecer el fondo (estoy usando un int):

@interface FlipSideViewController : UIViewController {
    int backgroundId;
}
@property (assign) int backgroundId;

A continuación, en FlipsideViewController.m, añadir lo siguiente:

@synthesize backgroundId;

-(void)viewWillAppear:(BOOL)animated
{
    if (backgroundId == 2)
        self.backgroundImageView.image = [UIImage imageNamed:@"background2.png"];
    else
        self.backgroundImageView.image = [UIImage imageNamed:@"background1.png"];
}

Por último, en el controlador principal punto de vista, el método de acción del botón sería algo como esto:

-(IBAction)buttonPressed:(UIButton *)sender
{
    FlipSideViewController *fsvc = [[FlipSideViewController alloc] initWithNibName:nil bundle:nil];
    fsvc.backgroundId = sender.tag;  //assuming btn1.tag=1 and bnt2.tag=2
    [self presentModalViewController:fsvc animated:YES];
    [fsvc release];
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top