CDDPagerController版本更新

作者: RocketsChen | 来源:发表于2017-10-18 17:36 被阅读305次
最近有给我反馈CDDPagerController框架有点小Bug,查看下源码还真是,生命周期那还真出了问题。我花了点时间解决了并重新更新的框架。

cd 项目 return pod update 更新下 最新版本 1.1.1
成功更新如下:
Installing CDDPagerController 1.1.1 (was 1.1.0)

Bug重现

有时候我们的父子控制器的标题数组是通过服务器请求返回的,这样就造成一种情况延迟。所以我进行了如下的模拟

#pragma mark - 添加所有子控制器
- (void)setUpAllChildViewController
{
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ //模拟网络延迟
        
        NSArray *titles = @[@"测试01",@"测试02",@"测试03",@"测试04",@"测试05",@"测试06",@"测试07",@"测试08",@"测试09"];
        for (NSInteger i = 0; i < titles.count; i++) {
            UIViewController *vc = [UIViewController new];
            vc.title = titles[i];
            vc.view.backgroundColor = RandColor; //随机色
            [self addChildViewController:vc];
        }
    });
}

Bug重现

GIF很直接的可以看出,模拟网络延迟之后,父子控制器并未能正常加载。可以看出很有可能是等模拟网络延迟在addChildViewController的时候,框架内部的生命周期已经结束了。

解决方案

我在DCPagerController.h声明类方法,供网络延迟使用

/**
 刷新标题和整个界面,在调用之前,需要获取到所有的子控制器。
 */
- (void)setUpRefreshDisplay;

然后在网络延迟add之后调用刷新方法
#pragma mark - 添加所有子控制器
- (void)setUpAllChildViewController
{
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ //模拟网络延迟
        
        NSArray *titles = @[@"测试01",@"测试02",@"测试03",@"测试04",@"测试05",@"测试06",@"测试07",@"测试08",@"测试09"];
        for (NSInteger i = 0; i < titles.count; i++) {
            UIViewController *vc = [UIViewController new];
            vc.title = titles[i];
            vc.view.backgroundColor = RandColor; //随机色
            [self addChildViewController:vc];
        }
        [self setUpRefreshDisplay]; //刷新
    });
}
解决
如果想具体查看源码,请下载查看。框架地址:CDDPagerController

相关文章

  • CDDPagerController版本更新

    最近有给我反馈CDDPagerController框架有点小Bug,查看下源码还真是,生命周期那还真出了问题。我花...

  • CDDPagerController版本更新-1.1.6

    最近有给我反馈CDDPagerController,不能单独更改其中一个ChildVc的Title。这个版本可以实...

  • CDDPagerController-Swift

    前言:CDDPagerController是上传到GitHub一个轻量级父子控制器的框架,之前有人问在Swift中...

  • 版本更新

    【更新内容】测试更新 【更新内容】 【版本】0.9【版本】

  • 远程更新 - 草稿 - 草稿

    【版本】2.0【版本】 【链接】【链接】 【更新】更新啦!【更新】

  • npm 更新版本

    npm 更新到最新的版本或者更新到指定的版本 查看npm的当前版本 更新到最新版本: 更新到指定版本:

  • 上进远程更新

    【版本】1.1【版本】 【链接】【链接】 【更新】【更新】

  • 辞别新版远程更新

    【版本】2.0【版本】 【链接】【链接】 【更新】【更新】

  • 测试

    更新内容《新版本》更新内容 更新版本《3.0》更新版本 更新链接《https://www.lanzous》更新链接

  • WriteConcern

    版本信息 当前版本 v1.0 版本历史 版本 更新时间 更新人 更新内容 v1.0 2015/10/...

网友评论

    本文标题:CDDPagerController版本更新

    本文链接:https://www.haomeiwen.com/subject/uzjeuxtx.html