iOS開發中的一些細節BUG的解決,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];
之後才會執行的。