能不能支持懒加载,不用一下子把全部页面全部加载出来
Wjy1005 opened this issue · comments
能不能支持懒加载,不用一下子把全部页面全部加载出来
你把设置颜色的那个注释掉,不在主屏幕的就不会调用 viewDidLoad 了。
你把设置颜色的那个注释掉,不在主屏幕的就不会调用 viewDidLoad 了。
可以具体说下是哪个属性吗,我是直接调用
CMPageTitleConfig *config = [CMPageTitleConfig defaultConfig];
你把设置颜色的那个注释掉,不在主屏幕的就不会调用viewDidLoad了。
可以具体说下是哪个属性吗,我是直接
调用CMPageTitleConfig * config = [CMPageTitleConfig defaultConfig];
我不是很明白你说的懒加载是什么意思。
当你alloc并init了一个ViewController时,这个ViewController应该是还没有创建view的。
ViewController的view是使用了lazyInit方式创建,就是说你调用的view属性的getter:[self view]。在getter里会先判断view是否创建,如果没有创建,那么会调用loadView来创建view。loadView完成时会继续调用viewDidLoad。loadView和viewDidLoad的一个区别就是:loadView时还没有view。而viewDidLoad时view以及创建好了。
https://www.cnblogs.com/xjy-123/p/5271063.html
一般情况下,我们会在 viewDidLoad 中执行一些方法,比如网络请求,添加子视图什么的。这个完全没有问题。
你说的这个懒加载有什么意图?节省内存占用吗?先说需求,再确认方法。
把设置颜色的注释掉
- (NSArray *)childControllers {
if (!_childControllers) {
UIViewController *vc0 = [UIViewController new];
UIViewController *vc1 = [UIViewController new];
UIViewController *vc2 = [UIViewController new];
UIViewController *vc3 = [UIViewController new];
UIViewController *vc4 = [UIViewController new];
UIViewController *vc5 = [UIViewController new];
UIViewController *vc6 = [UIViewController new];
UIViewController *vc7 = [UIViewController new];
UIViewController *vc8 = [UIViewController new];
UIViewController *vc9 = [UIViewController new];
UIViewController *vc10 = [UIViewController new];
vc0.title = @"推荐";
vc1.title = @"小视频";
vc2.title = @"视频";
vc3.title = @"懂车帝";
vc4.title = @"北京";
vc5.title = @"娱乐";
vc6.title = @"图片";
vc7.title = @"热点";
vc8.title = @"体育";
vc9.title = @"财经";
vc10.title = @"国际";
//vc0.view.backgroundColor = CM_RANDOM_COLOR;
//vc1.view.backgroundColor = CM_RANDOM_COLOR;
//vc2.view.backgroundColor = CM_RANDOM_COLOR;
//vc3.view.backgroundColor = CM_RANDOM_COLOR;
//vc4.view.backgroundColor = CM_RANDOM_COLOR;
//vc5.view.backgroundColor = CM_RANDOM_COLOR;
//vc6.view.backgroundColor = CM_RANDOM_COLOR;
//vc7.view.backgroundColor = CM_RANDOM_COLOR;
//vc8.view.backgroundColor = CM_RANDOM_COLOR;
//vc9.view.backgroundColor = CM_RANDOM_COLOR;
// vc10.view.backgroundColor = CM_RANDOM_COLOR;
_childControllers =@[vc0,vc1,vc2,vc3,vc4,vc5,vc6,vc7];
}
return _childControllers;
}
把这里的 UIViewController 换成你自定义的类就行了。
你把设置颜色的那个注释掉,不在主屏幕的就不会调用viewDidLoad了。
可以具体说下是哪个属性吗,我是直接
调用CMPageTitleConfig * config = [CMPageTitleConfig defaultConfig];我不是很明白你说的懒加载是什么意思。
当你alloc并init了一个ViewController时,这个ViewController应该是还没有创建view的。
ViewController的view是使用了lazyInit方式创建,就是说你调用的view属性的getter:[self view]。在getter里会先判断view是否创建,如果没有创建,那么会调用loadView来创建view。loadView完成时会继续调用viewDidLoad。loadView和viewDidLoad的一个区别就是:loadView时还没有view。而viewDidLoad时view以及创建好了。
https://www.cnblogs.com/xjy-123/p/5271063.html
明白了,谢谢