zoukankan      html  css  js  c++  java
  • 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];

     之后才会执行的。

    转载请注明出处
  • 相关阅读:
    檢查 cpu 的全部 gpio 狀態及設定
    device tree 負值 property 寫法
    shell script timer and 無限迴圈
    vim 搜尋取代功能
    英国人是这样“造”单词的
    计划时间程序
    程序猿的崛起,一篇文章看懂编程语言
    如何读懂计算机(二进制)
    为什么计算机上能看到动人的图片,精彩的视频和悦耳的音乐?(二进制)
    格式化时间用了YYYY-MM-dd,元旦当天老板喊我回去改Bug!(转载)
  • 原文地址:https://www.cnblogs.com/zzuliliu/p/5377979.html
Copyright © 2011-2022 走看看