iOS 自 7.x 某個版本以后,存在一個 Push/Pop ViewController 時右上角會有奇怪黑影冒出的問題虽风。
這個問題由來已久涌庭,在做兔兔助手項目時就曾遇到過,現(xiàn)在記錄下烂斋,不知道現(xiàn)在iOS9還有沒有出現(xiàn)。
首先來看看這是什么樣的一個問題吧础废,這個問題在兔兔助手正版客戶端上也是存在的汛骂。簡單的描述就是,在工具箱頁中點擊賬戶评腺,進(jìn)入詳情頁帘瞭,或者從詳情頁右滑回到上頁,剛剛觸發(fā)滑動的那一瞬間蒿讥,右上角會有黑影:
那么如何解決這個問題呢蝶念?
實際上很簡單,如果這個 ViewController 是在 TabBarViewController 的 NavigationController 上 Push/Pop 的芋绸,那么只需要把 TabBarViewController 的 View 設(shè)置一下白色背景就可以了媒殉。
建立一個 UITabBarController 的子類,然后我重載 viewDidLoad 即可:
- (void)viewDidLoad {
[super viewDidLoad];
// 修復(fù) Push到下一級右上角可惡的黑條
self.view.backgroundColor = [UIColor whiteColor];
}
但是到這里為止摔敛,只解決了 50%廷蓉,還有另外一種情況沒有解決,那就是如果你 present 了一個 NavigationController + ViewController 后马昙,在這個下面再進(jìn)行 Pop/Push 也是會有黑影的情況下桃犬。這種情況如何解決呢?
類似的行楞,設(shè)置一下 self.navigationController.view.backgroundColor = [UIColor whiteColor]; 即可攒暇。
不過,最后在stackoverflow上看到有人提供的解決方案子房,是在AppDelegate.m里面形用,didFinishLaunchingWithOptions方法里面加一句
self.window.backgroundColor = [UIColor whiteColor];
直接把window的背景設(shè)為白色,也解決了問題池颈,親測有效尾序。