先直接上方法:
隱藏:
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
self.navigationBar.shadowImage = [UIImage new];
}
顯示:
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
[self.navigationBar setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
self.navigationBar.shadowImage = nil;
}
[self.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
self.navigationBar.shadowImage = [UIImage new];
蘋果官方文檔上解釋黑線的原因:

官方文檔說明.png