在使用navigationController
的主視圖push
子視圖時出現了黑色陰影,查詢了相關的問題與解決方案,在此總結一下:
黑色陰影.png
出現黑色陰影分為以下幾種情況+解決方案:
情況一:present
推出了navigationController
的主視圖后,進行push
操作
解決方案:設置navigationController
背景色為白色
self.navigationController.view.backgroundColor = [UIColor whiteColor];
情況二:對tabBarViewController
上的navigationController
進行push
操作
解決方案:創建一個基于UITabBarViewController
的子類,將背景設置為白色,重載viewDidLoad
的方法
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
self.view.backgroundColor = [UIColor whiteColor];
}
情況三:沒有設置viewController
的背景色
解決方案:設置viewController
的背景色為白色
self.view.backgroundColor = [UIColor whiteColor];
情況四 :調用了self.navigationController.navigationBar.translucent = NO
方法,將導航欄的半透明屬性關閉掉,布局也是從導航欄下面開始了,顯示出了底層的window
解決方案:在AppDelegate
中設置window
的背景色為白色
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
self.window.backgroundColor = [UIColor whiteColor];
return YES;
}
或者,在相應的viewController
中設置背景色為白色
[UIApplication sharedApplication].keyWindow.backgroundColor = [UIColor whiteColor];
參考
iOS -- push/pop 導航欄黑色陰影問題
解決 iOS View Controller Push/Pop 時的黑影