如前所述,在初始化TableView时效果很好。
我在详细视图中使用此代码来清除状态栏:
[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 :(得分:1)
两个视图控制器都可能在同一个UINavigationController中。这意味着他们也共享相同的UINavigationBar。返回初始视图控制器时,需要设置navigationBar的初始值。现在,当您返回时,细胞与导航栏重叠,因为条形是半透明的。在第一个视图控制器-viewWillAppear方法上设置这些值。
self.navigationController.navigationBar.translucent = NO;
self.navigationController.navigationBar.backgroundColor = #BARCOLOR;
答案 1 :(得分:0)
将属性self.navigationController.navigationBar.translucent设置为NO。我的意思是替换代码self.navigationController.navigationBar.translucent = YES;
用
self.navigationController.navigationBar.translucent = NO;
希望这应该有用。