Estoy tratando de enviar una cadena desde mi TableViewContoller a mi LabelViewController en didSelectRowAtIndexPath. La cadena es el número de la fila en mi tabla. En LabelViewController.h tengo mi propiedad UILabel llamada * rowNumberLabel.

En mi TableViewController, intento establecer el texto de la etiqueta en didSelectRowAtIndexPath con el siguiente código:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    self.rowNumber = indexPath.row;
    self.numberString = [NSString stringWithFormat:@"%lu", self.rowNumber];
    LabelViewController *labelViewController = [[LabelViewController alloc] init];
    NSLog(@"The row number is %@", self.numberString);
    labelViewController.rowNumberLabel.text = self.numberString;
    [self.navigationController pushViewController:labelViewController animated:YES];
}

Estoy muy seguro de que estoy revisando algo simple, pero no puedo entender por qué el texto de la etiqueta no se configura cuando presiono labelViewController. Gracias por la ayuda.

0
James 22 mar. 2017 a las 21:16

2 respuestas

La mejor respuesta

La razón es que rowNumberLabel no está conectado justo después de inicializar LabelViewController.

  • Cree una propiedad en LabelViewController y asigne numberString a esa propiedad.
  • En LabelViewController asigna la propiedad a la etiqueta en viewDidLoad.
0
vadian 22 mar. 2017 a las 18:26

En TableViewcontroller

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    self.rowNumber = indexPath.row;
    self.numberString = [NSString stringWithFormat:@"%lu", self.rowNumber];
    LabelViewController *labelViewController = [[LabelViewController alloc] init];
    NSLog(@"The row number is %@", self.numberString);
    labelViewController.labelstring = self.numberString;
    [self.navigationController pushViewController:labelViewController animated:YES];
}

En LabelViewController .h File

@property(nonatomic,strong)NSString * labelstring;

Archivo .m

- (void)viewDidLoad {
    [super viewDidLoad];
    self.rowNumberLabel.text = labelstring;

}
0
Sathish Kumar VG 28 mar. 2017 a las 13:06