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 é?