你的位置:首页 > 操作系统

[操作系统]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];

 之后才会执行的。