• iOS开发中的一些细节BUG的解决


            这篇博客里我将不定期更新自己遇到的一些细节上的BUG,并提供解决方法,遇到同样问题的童鞋们可以参考交流一下。

    1.关于tableView的tableHeaderView

            请注意,我这里说的是tableHeaderView, 不是selection。我的具体情况是:首先alloc一个UIView,并指定为tableView的tableHeaderView。之后进行了自适应高度导致tableHeaderView的frame发生了变化,这时候我发现cell被tableHeaderView覆盖了。遇见这种情况时,我们可以在frame改变之后,通过将UIView对象重新指定为tableview的tableHeaderView即可解决。

    2.关于为父视图加载子视图的问题。

    说这个问题之前,我先来说一个小细节。viewDidLoad是在viewVillAppear之前执行的。

    我遇见的问题是:我需要从父控制获取一个值传到子控制器。这本身是一个很简单的问题,我最初的代码是这么写的:

        LoadWebController *webVC = [[LoadWebController alloc] init];
        [self addChildViewController:webVC];
        webVC.view.frame = CGRectMake(hScreenWidth, 0, hScreenWidth, self.rootScrollView.frame.size.height);
        [self.rootScrollView addSubview:webVC.view];
        webVC.model = self.model;
    

     运行时我发现,我在viewDidLoad使用model的值时,值是空的。出现这个问题就是我上面说的代码执行先后的问题。上面的写法是在viewVillAppear才进行传值,这就导致在执行viewDidLoad时,是没有进行传值的。

    解决方法也很简单,只需要把

    webVC.model = self.model;

    放到

    LoadWebController *webVC = [[LoadWebController alloc] init];

     之后即可。因为这句之后是要执行viewDidLoad的。viewVillAppear是在

    [self.rootScrollView addSubview:webVC.view];

     之后才会执行的。

    转载请注明出处
  • 相关阅读:
    Linux下程序对拍_C++
    KMP算法_模板_C++
    [ CodeVS冲杯之路 ] P2952
    Netty入门(七)使用SSL/TLS加密Netty程序
    Netty入门(六)Decoder(解码器)
    Netty入门(五)ChanneHandler
    Netty入门(四)ByteBuf 字节级别的操作
    Netty入门(三)构成部分
    Netty入门(二)时间服务器及客户端
    Netty入门(一)环境搭建及使用
  • 原文地址:https://www.cnblogs.com/zzuliliu/p/5377979.html
Copyright © 2020-2023  润新知