ボイドが呼び出されたときにテキストを更新するビューにラベルがあります。私はアプリのデリゲートからこのボイドを呼び出しています。ブレークポイントを使用すると、インスタンス メソッドが機能し、ラベル テキストを変更する行が呼び出されていることがわかります。
テキストだけが変更されていません!これと同じメソッドがビューで呼び出され、ロードされて完全に変更されます。
アプリデリゲートのインスタンスメソッドを介して呼び出された場合、ラベルテキストが変更されない理由を知っている人はいますか??
私が知らないある種のリフレッシュ機能はありますか?
ありがとう
appDelegate.m
-(void)callScheduler:(UILocalNotification *)notification
{
CompassViewController *curVC1 = [[CompassViewController alloc] init];
AlarmViewController *curVC2 = [[AlarmViewController alloc] init];
[curVC1 setTimeLabel];
[curVC2.alarmTableView reloadData];
}
CompassViewController.m
- (void) setTimeLabel {
alarmTimeLabel.text = NSLocalizedString(@"No Alarms", nil);
}
編集: ...裏話、誰かを雇って小さなプロジェクトを作成し、それをアプリに組み込みました。唯一の問題は、「topViewController」を実行したときにアプリがクラッシュしたことでした。 1。私のアプリは、私がセグエするビューコントローラーで構成されていますが、現在作業中のビューはナビゲーションコントローラーに埋め込まれています。これは機能した元のコードですが、元のプロジェクトがすべてナビゲーションベースだったためだと思います...
UINavigationController *nav = (UINavigationController *)[[[[UIApplication sharedApplication] delegate] window] rootViewController];
UIViewController *curVC = nav.topViewController;
if ([curVC isKindOfClass:[CompassViewController class]])
[(CompassViewController *)curVC setTimeLabel];
else
[((AlarmViewController *)curVC).alarmTableView reloadData];
だから私の本当の質問は、アプリに「topViewController」を使用させるにはどうすればよいですか?