2 つの画面を持つアプリがあります。最初の画面には、モーダル セグエを介してモーダル ビューとして 2 番目の画面を開くボタンがあり、UILabel があります。
この UILabel には、ユーザーがボタンをクリックする回数に応じて変化する特定のテキストが必要です (それらはヒントです。ユーザーはボタンをクリックしてヒントを 3 回しか表示できません)。私がやっていることは、ボタンをクリックするたびに次の方法です。
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"TipModal"]) {
QuizTipViewController * detailViewController = (QuizTipViewController *) segue.destinationViewController;
detailViewController.delegate = self;
detailViewController.tipText = self.quiz.currentTip;
[detailViewController.numberTipsText setText:[NSString stringWithFormat:@"Pistas para la respuesta (usadas %ld de 3)", (long)self.quiz.tipCount]] ;
NSLog(@"%d", self.quiz.tipCount);
NSLog(@"%@", detailViewController.numberTipsText.text);
}
}
最後の 2 つのログには、次の出力があります。
2013-05-14 19:10:47.987 QuoteQuiz[1241:c07] 0
2013-05-14 19:10:47.989 QuoteQuiz[1241:c07] Hints (0 out of 3 used)
それにもかかわらず、UILabel のテキストは常に空です。
モーダル ウィンドウのビュー コントローラーの .h ファイルで、UILabel を次のように定義します。
@property (strong, nonatomic) IBOutlet UILabel* numberTipsText;
そして私は実装ファイルでさえ作成しました:
-(UILabel *)numberTipsText {
if (!_numberTipsText) {
_numberTipsText = [[UILabel alloc] init];
}
return _numberTipsText;
}
なぜこれが起こっているのか考えてみてください。
よろしくお願いします!