Nó dường như xảy ra với bất kỳ thanh nào (TabBar hoặc ToolBar) bị mờ.
Vì vậy, một cách để sửa nó là đặt _tabBar.translucent = NO;
(trong trường hợp của tôi). Điều này ngăn chặn bóng không mong muốn dưới thanh điều hướng trên cùng trong khi vẫn để thanh điều hướng trong mờ. Thật không may, thanh dưới cùng không còn trong mờ nữa.
Nó có thể được đặt trở lại trong mờ nhưng tất cả điều này phải xảy ra sau khi toàn bộ hoạt ảnh đẩy kết thúc, do đó việc chuyển đổi thuộc tính này là rất đáng chú ý.
Tuy nhiên, trong trường hợp thanh dưới cùng cũng phải trong suốt và tôi không muốn người dùng nhìn thấy thay đổi, tôi đã giải quyết bằng cách sau:
/* create a simple quick animation of the bottom bar
just before pushing the new controller */
[UIView animateWithDuration:0.1
animations:^{
_tabBar.barTintColor = [UIColor colorWithWhite:0.97254901960784 alpha:1.0]; // this is the closest color for my case
_tabBar.translucent = NO;
} completion:^(BOOL finished) {
/* now when the animation that makes the bar not translucent
is finished we can push the new controller
the controller is instantiated before the animation code */
[self.navigationController pushViewController:controller animated:YES];
}];
Sau đó, viewDidAppear:
tôi chỉ cần hoàn nguyên điều đó trở lại:
[UIView animateWithDuration:0.1
animations:^{
_tabBar.barTintColor = nil;
_tabBar.translucent = YES;
}];
Đặc biệt là chỉ có một chút thay đổi về ngoại hình nhưng nó hầu như không đáng chú ý và nó tốt hơn là có bóng dưới thanh điều hướng.
Hy vọng nó sẽ giúp những người khác giữ cho các thanh trong mờ cho đến khi Apple khắc phục hành vi này vì các thanh ĐƯỢC ẩn trong một số trường hợp không giống như nó được đề xuất trong các bài đăng khác, đặc biệt là đối với UITabBar
darkColor
chế độ xem vẫn ở đó và gây ra sự cố này.