2014-10-08 30 views
1

如前所述,在初始化TableView時工作得很好。從詳細視圖返回時,UITableView與狀態和導航欄重疊

Initial View

我用這個代碼在詳細視圖以清除狀態欄:

[self.navigationController.navigationBar setBackgroundImage:[UIImage new] 
               forBarMetrics:UIBarMetricsDefault]; 
self.navigationController.navigationBar.shadowImage = [UIImage new]; 
self.navigationController.navigationBar.translucent = YES; 
self.navigationController.navigationBar.backgroundColor = [UIColor clearColor]; 
self.navigationController.view.backgroundColor = [UIColor clearColor]; 

從的DetailView回國後,這樣的事情發生了:

View after returning from detail

我試過self.tableView.contentInset- (void)viewDidLoad- (void)viewDidAppear,它不是工作國王。

初始ViewController是UITableViewController的子類,而不是UIViewController。

回答

0

將屬性self.navigationController.navigationBar.translucent設置爲NO。我的意思是替換代碼self.navigationController.navigationBar.translucent = YES;

隨着

self.navigationController.navigationBar.translucent = NO;

希望這應該工作。

1

兩個視圖控制器都可能在同一個UINavigationController中。這意味着它們也共享相同的UINavigationBar。當您返回到初始視圖控制器時,您需要設置navigationBar的初始值。現在,當您返回時,單元格會與導航欄重疊,因爲酒吧是半透明的。在第一個視圖控制器-viewWillAppear方法中設置這些值。

self.navigationController.navigationBar.translucent = NO; 
self.navigationController.navigationBar.backgroundColor = #BARCOLOR; 
+0

謝謝,解決了這個問題。 – lordykw 2014-10-08 15:11:29