在我目前正在处理的应用程序中,有一种情况是我有 2 个屏幕用于显示一组数据:一个是列表,一个是地图。每个屏幕都有自己的视图控制器。默认屏幕是列表视图,因此首先加载视图控制器。但是另一个地图屏幕视图控制器也被加载和设置(因为它封装了列表屏幕视图控制器使用的一些与地理地图相关的数据),即使地图屏幕尚不可见。
但是,我不希望在用户切换到该屏幕之前加载和初始化地图屏幕视图控制器的 nib 和视图。
view
如下代码所示,在地图屏幕视图控制器中覆盖属性访问器并延迟加载/实例化笔尖有什么问题吗?(view
在地图屏幕即将显示之前,不会访问该属性,就在地图屏幕视图控制器的viewDidLoad
方法被调用之前。)我已经测试过它运行良好,但我从未见过它这样做过。
- (UIView *)view {
if (!_view) {
UINib *nib = [UINib nibWithNibName:@"MyNibName" bundle:nil];
[nib instantiateWithOwner:self options:nil];
}
return _view;
}