Tengo un IBAction conectado a un botón en mi Interface Builder.

Es posible cambiar el texto del botón (IB) desde dentro de mi código en tiempo de ejecución?

  • A qué te refieres IBAction, o a qué te refieres IBOutlet? Una salida es una conexión entre un objeto y la variable de instancia.
InformationsquelleAutor Linuxmint | 2011-03-10

7 Comentarios

  1. 73

    Si tienes un botón que se conecta a una acción en su código, usted puede cambiar el título sin una variable de instancia.

    Por ejemplo, si el botón está configurado para esta acción:

    -(IBAction)startSomething:(id)sender;

    Simplemente puede hacer esto en el método:

    -(IBAction)startSomething:(id)sender {
        [sender setTitle:@"Hello" forState:UIControlStateNormal];
    }

    O si quiere cambiar el nombre del botón, usted puede crear un BOOL denominado «buttonToggled» (por ejemplo), y cambiar el nombre de esta manera:

    -(IBAction)toggleButton:(id)sender {
        if (!buttonToggled) {
            [sender setTitle:@"Something" forState:UIControlStateNormal];
            buttonToggled = YES;
        }
        else {
            [sender setTitle:@"Different" forState:UIControlStateNormal];
            buttonToggled = NO;
        }
    }
    • ¿Por qué usted desea crear una variable adicional para mantener un seguimiento del estado del botón en lugar de simplemente consultar el texto del botón en sí? Si usted insiste en usar un valor independiente para determinar el texto del botón, a continuación, me gustaría recomendar el uso de la tag de la propiedad para el botón en lugar de un valor booleano.
  2. 19
    UIButton *myButton;
    
    [myButton setTitle:@"My Title" forState:UIControlStateNormal];
    [myButton setTitle:@"My Selected Title" forState:UIControlStateSelected];
  3. 4

    Otra forma de cambiar:

    - (IBAction)signOnClick:(id)sender
    {
        if ([_signOnButton.titleLabel.text isEqualToString:@"Sign off"])
        {
            [sender setTitle:@"Sign on" forState:UIControlStateNormal];
        }
        else
        {
            [sender setTitle:@"Sign off" forState:UIControlStateNormal];
        }
    }
  4. 3

    myapp.h

    {
    UIButton *myButton;
    }
    @property (nonatomic,retain)IBoutlet UIButton *myButton;

    myapp.m

    @synthesize myButton;
    
    -(IBACtion)buttonTitle{
    [myButton setTitle:@"Play" forState:UIControlStateNormal];
    }
  5. 2

    No hay necesidad de agregar si{}else{} de control de flujo. Activa el botón de textos para diferentes estados a la Vista o ViewController constructor:

    [btnCheckButton setTitle:@"Normal" forState:UIControlStateNormal]; 
    [btnCheckButton setTitle:@"Seleccionado" forState:UIControlStateSelected];

    A continuación, cambie el estado del botón Seleccionado:

    [btnCheckButton setSelected:YES];

    A continuación, cambie el estado del botón Normal:

    [btnCheckButton setSelected:NO];

Dejar respuesta

Please enter your comment!
Please enter your name here