iOS導航控制器push/pop出現黑色陰影問題

在使用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 時的黑影

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容