iOS - Passando variável para ver o controlador

Eu tenho uma visão com um controlador de exibição e quando eu mostrar essa visão na tela, eu quero ser capaz de passar variáveis ​​para ele da classe de chamada, para que eu possa definir os valores das etiquetas etc.

Primeiro, tentei criar uma propriedade para um dos rótulos e chamar isso da classe chamadora. Por exemplo:

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

No entanto, isso não funcionou. Então eu tentei criar um inicializador de conveniência.

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

E então noSetTeamsViewController eu tinha

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

No entanto, isso não funcionou também. É apenas carregar qualquer valor que eu tenha dado o rótulo no arquivo nib. Eu já coloquei o código comNSLog()se está passando os valores corretos da variável, simplesmente não está configurando o rótulo.

Qualquer ajuda seria muito apreciada.

EDIT: Acabei de tentar definir uma variável de instância no meu inicializador designado e, em seguida, definindo o rótulo no viewDidLoad e que funciona! Essa é a melhor maneira de fazer isso?

Além disso, ao descartar esse controlador de modo de exibição modal, atualizo o texto de um botão na exibição do ViewController de chamada também. No entanto, se eu pressionar este botão novamente (para mostrar a exibição modal novamente) enquanto a outra exibição estiver animando na tela, o botão temporariamente terá seu valor original novamente (a partir da ponta). Alguém sabe por que isso é?

questionAnswers(8)

yourAnswerToTheQuestion