我有一张地图,通过分割视图控制器显示给用户。
我需要能够检测到地图是视图层次结构中最前面的视图。原因是;当地图区域发生变化时,它会调用委托方法:
- (void)mapView:(MKMapView *)aMapView regionDidChangeAnimated:(BOOL)animated;
这是我从远程源加载数据的地方,并且更改设备方向似乎调用此委托方法。
所以我的逻辑是,如果地图不是最前面的视图(前面可能有弹出窗口或模式),那么就不要从远程数据源进行处理,从而将我的服务器上的负载保持在最小。
当前从地图视图ViewController中显示所有模态和弹出窗口。我确实考虑通过使用变量来实现它,但是我的一些弹出窗口是通过故事板而不是代码中建立的连接来显示的,所以这不是理想的解决方案。
答案 0 :(得分:1)
您可以使用presentedViewController
的属性UIViewController
来检查当前视图控制器或其祖先之一是否正在呈现视图控制器