それを私が直した!
「メイン」NavigationBar の下に別の NavigationBar を配置しました。「メイン」の NavigationBars シャドウ ラインを削除しました。
NavigationBar の半透明を削除し、背景色を 97% の白に設定します。(それは標準です)。半透明が YES の場合、コンテンツが背後にあると奇妙に見えます。
[self.navigationController.navigationBar setTranslucent:NO];
[self.navigationController.navigationBar setBarTintColor:[UIColor colorWithWhite:0.97 alpha:1]];
[NavigationBarExtension setTranslucent:NO];
[NavigationBarExtension setBarTintColor:[UIColor colorWithWhite:0.97 alpha:1]];
行を削除するコード (これは viewWillAppear で行います。他のビュー コントローラーをプッシュすると、行が戻ってくる必要があるためです)
- (void)viewWillAppear:(BOOL)animated {
for (UIView *view in self.navigationController.navigationBar.subviews) {
if ([view isKindOfClass:NSClassFromString(@"_UINavigationBarBackground")]) {
for (UIView *view2 in view.subviews) {
if ([view2 isKindOfClass:[UIImageView class]] && view2.frame.size.height < 1) {
[view2 setHidden:YES];
break;
}
}
}
}
}
他のView Controllerをプッシュしたときに行を表示するコード:
- (void)viewWillAppear:(BOOL)animated {
for (UIView *view in self.navigationController.navigationBar.subviews) {
if ([view isKindOfClass:NSClassFromString(@"_UINavigationBarBackground")]) {
for (UIView *view2 in view.subviews) {
if ([view2 isKindOfClass:[UIImageView class]] && view2.frame.size.height < 1) {
[view2 setHidden:NO];
break;
}
}
}
}
}