Tampaknya ini terjadi dengan bilah apa pun (TabBar atau ToolBar) yang tembus cahaya.
Jadi salah satu cara untuk memperbaikinya adalah dengan mengatur _tabBar.translucent = NO;
(dalam kasus saya). Ini mencegah bayangan yang tidak diinginkan di bawah bilah navigasi atas sementara bilah navigasi tetap tembus cahaya. Sayangnya bilah bawah tidak lagi tembus.
Ini dapat diatur kembali ke tembus cahaya tetapi semua ini harus terjadi setelah seluruh animasi mendorong selesai sehingga peralihan properti ini terlihat jelas.
Dalam kasus, bagaimanapun bilah bawah juga harus tembus cahaya dan saya tidak ingin pengguna melihat perubahan yang saya selesaikan dengan yang berikut:
[UIView animateWithDuration:0.1
animations:^{
_tabBar.barTintColor = [UIColor colorWithWhite:0.97254901960784 alpha:1.0];
_tabBar.translucent = NO;
} completion:^(BOOL finished) {
[self.navigationController pushViewController:controller animated:YES];
}];
Kemudian di viewDidAppear:
saya hanya mengembalikan itu kembali:
[UIView animateWithDuration:0.1
animations:^{
_tabBar.barTintColor = nil;
_tabBar.translucent = YES;
}];
Hanya ada sedikit perubahan pada tampilan terutama tetapi hampir tidak terlihat dan jauh lebih baik daripada memiliki bayangan di bawah bilah navigasi.
Semoga ini akan membantu orang lain untuk menjaga agar bilah tetap tembus cahaya sampai Apple memperbaiki perilaku ini karena bilah ADALAH dimaksudkan untuk disembunyikan dalam beberapa kasus tidak seperti yang disarankan di pos lain terutama untuk UITabBar
darkColor
tampilan tersebut masih ada dan menyebabkan masalah ini.