Kabul edilen cevap benim için işe yaradı, ancak gölge görüntünün geri döndüğümde veya başka bir vc'ye ileri doğru iterken yeniden görünmesini istediğimde gezinme çubuğunda gözle görülür bir göz kırpma olduğunu fark ettim.
Bu yöntemi navigationController?.navigationBar.setValue(true, forKey: "hidesShadow")
viewWillAppear içinde kullanma gölge çubuğu geçerli görünür görünüm denetleyicisinde gizlidir.
Bu 2 yöntemi kullanmak
navigationController?.navigationBar.setBackgroundImage(nil, for: .default)
navigationController?.navigationBar.setValue(false, forKey: "hidesShadow")
in viewWillDisappear yanıp sönme hala gerçekleşir, ancak yalnızca gölge görüntü yeniden göründüğünde ve gezinme çubuğunun kendisi değil.
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
// 1. hide the shadow image in the current view controller you want it hidden in
navigationController?.navigationBar.setValue(true, forKey: "hidesShadow")
navigationController?.navigationBar.layoutIfNeeded()
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(true)
// 2. show the shadow image when pushing or popping in the next view controller. Only the shadow image will blink
navigationController?.navigationBar.setBackgroundImage(nil, for: .default)
navigationController?.navigationBar.setValue(false, forKey: "hidesShadow")
navigationController?.navigationBar.layoutIfNeeded()
}