我存储数据的方法位于 AppDelegate 中。每当数据保存到数据库中时,我都想检查 SecondView 是否可见。
如果是,则从数据库重新加载屏幕上的值。如果没有,我将在屏幕上显示具有最新值的视图。
我正在尝试这样的事情:
委托人.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");
}
第二视图控制器.m
- (BOOL)isVisible {
return [self isViewLoaded] && self.view.window;
}
- (void)updateDisplayValue
{
[self LatestMeasurementFromSQLite];
[self.date setText:self.measurementTime];
}
它不能正常工作, isVisible never return 是可见的,并且 updateDisplayValue 不会更新已经显示的视图。
我认为问题在于我重新启动了一个名为 SecondVC 的新视图,它不是屏幕上显示的视图。但是 AppDelegate 如何获取当前的显示视图呢?
请帮忙!非常感谢!