私のデータ保存方法は AppDelegate にあります。データがデータベースに保存されるたびに、SecondView isVisible かどうかを確認したいと思います。
そうである場合は、画面上の値をデータベースから再読み込みします。そうでない場合は、画面に最新の値でビューを表示します。
私はこのようなことを試みています:
デリゲート.m
// I want to update view
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
SecondViewController *SecondVC = (SecondViewController *)[storyboard instantiateViewControllerWithIdentifier:@"SecondVC"];
if (SecondVC.isVisible)
{
NSLog(@"SecondVC is visible");
[SecondVC updateDisplayValue];
}
else
{
self.window.rootViewController = SecondVC;
NSLog(@"SecondVC not visible");
}
SecondViewController.m
- (BOOL)isVisible {
return [self isViewLoaded] && self.view.window;
}
- (void)updateDisplayValue
{
[self LatestMeasurementFromSQLite];
[self.date setText:self.measurementTime];
}
isVisible が表示されることはなく、updateDisplayValue は既に表示されているビューを更新しません。
問題は、画面に表示されていない SecondVC という新しいビューを再度開始したことだと思います。しかし、AppDelegate はどのようにして現在の表示ビューを取得できるのでしょうか?
助けてください!どうもありがとう!