ビューコントローラを備えたビューがあり、このビューを画面に表示するときに、呼び出し元のクラスから変数を渡して、ラベルなどの値を設定できるようにしたいです。
まず、ラベルの1つにプロパティを作成し、それを呼び出し元のクラスから呼び出してみました。例えば:
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ファイルにラベルを付けた値をロードするだけです。コードにsを散らかしましたがNSLog()
、正しい変数値が渡されています。ラベルが設定されていないだけです。
どんな助けでも大歓迎です。
編集:指定した初期化子でインスタンス変数を設定してから、viewDidLoadでラベルを設定しようとしましたが、これでうまくいきます!これはこれを行うための最良の方法ですか?
また、このモーダルView Controllerを閉じるときに、呼び出し元のViewControllerのビューのボタンのテキストも更新します。ただし、他のビューが画面上でアニメーション化されているときにこのボタンをもう一度押すと(モーダルビューを再度表示するため)、ボタンは一時的に元の値に戻ります(ペン先から)。なぜこれなのか誰か知っていますか?