iOS - Pasando la variable para ver el controlador

Tengo una vista con un controlador de vista y cuando muestro esta vista en la pantalla, quiero poder pasarle variables de la clase de llamada, para poder establecer los valores de las etiquetas, etc.

Primero, solo intenté crear una propiedad para una de las etiquetas y llamarla desde la clase que llama. Por ejemplo:

SetTeamsViewController *vc = [[SetTeamsViewController alloc] init];
vc.myLabel.text = self.teamCount;
[self presentModalViewController:vc animated:YES];
[vc release];

Sin embargo, esto no funcionó. Así que intenté crear un inicializador de conveniencia.

SetTeamsViewController *vc = [[SetTeamsViewController alloc] initWithTeamCount:self.teamCount];

Y luego en elSetTeamsViewController tuve

- (id)initWithTeamCount:(int)teamCount {
    self = [super initWithNibName:nil bundle:nil];
    if (self) {
        // Custom initialization
        self.teamCountLabel.text = [NSString stringWithFormat:@"%d",teamCount];
    }
    return self;
}

Sin embargo, esto tampoco funcionó. Solo está cargando el valor que le he dado a la etiqueta en el archivo de plumilla. He ensuciado el código conNSLog()s y está pasando los valores de las variables correctas, simplemente no está configurando la etiqueta.

Cualquier ayuda sería muy apreciada.

EDITAR: ¡Acabo de intentar establecer una variable de instancia en mi inicializador designado y luego configurar la etiqueta en viewDidLoad y eso funciona! ¿Es ésta la mejor manera de hacer ésto?

Además, al descartar este controlador de vista modal, también actualizo el texto de un botón en la vista del ViewController de llamada. Sin embargo, si presiono este botón nuevamente (para mostrar la vista modal nuevamente) mientras la otra vista está animando en la pantalla, el botón temporalmente tiene su valor original nuevamente (de la punta). ¿Alguien sabe a que se debe esto?

Respuestas a la pregunta(8)

Su respuesta a la pregunta