0

ボイドが呼び出されたときにテキストを更新するビューにラベルがあります。私はアプリのデリゲートからこのボイドを呼び出しています。ブレークポイントを使用すると、インスタンス メソッドが機能し、ラベル テキストを変更する行が呼び出されていることがわかります。

テキストだけが変更されていません!これと同じメソッドがビューで呼び出され、ロードされて完全に変更されます。

アプリデリゲートのインスタンスメソッドを介して呼び出された場合、ラベルテキストが変更されない理由を知っている人はいますか??

私が知らないある種のリフレッシュ機能はありますか?

ありがとう

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」を使用させるにはどうすればよいですか?

4

0 に答える 0