这篇博客里我将不定期更新自己遇到的一些细节上的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];
之后才会执行的。