iOS - Передача переменной в контроллер просмотра
У меня есть представление с контроллером представления, и когда я показываю это представление на экране, я хочу иметь возможность передавать ему переменные из вызывающего класса, чтобы я мог установить значения меток и т. Д.
Сначала я попытался создать свойство для одной из меток и вызвать его из вызывающего класса. Например:
SetTeamsViewController *vc = [[SetTeamsViewController alloc] init];
vc.myLabel.text = self.teamCount;
[self presentModalViewController:vc animated:YES];
[vc release];
Однако это не сработало. Поэтому я попытался создать удобный инициализатор.
SetTeamsViewController *vc = [[SetTeamsViewController alloc] initWithTeamCount:self.teamCount];
А потом вSetTeamsViewController
я имел
- (id)initWithTeamCount:(int)teamCount {
self = [super initWithNibName:nil bundle:nil];
if (self) {
// Custom initialization
self.teamCountLabel.text = [NSString stringWithFormat:@"%d",teamCount];
}
return self;
}
Однако это также не сработало. Он просто загружает любое значение, которое я дал метке в nib-файле. Я засорял кодNSLog()
и он передает правильные значения переменных, он просто не устанавливает метку.
Любая помощь будет принята с благодарностью.
РЕДАКТИРОВАТЬ: Я только что попытался установить переменную экземпляра в моем назначенном инициализаторе, а затем установить метку в viewDidLoad, и это работает! Это лучший способ сделать это?
Кроме того, при отклонении этого модального контроллера представления я также обновляю текст кнопки в представлении вызывающего ViewController. Однако, если я снова нажму эту кнопку (чтобы снова отобразить модальный вид), пока другой вид анимируется на экране, кнопка временно снова получит свое первоначальное значение (из пера). Кто-нибудь знает, почему это?