Câu trả lời được chấp nhận có tác dụng với tôi nhưng tôi nhận thấy khi tôi muốn hình ảnh bóng xuất hiện trở lại khi bật lại hoặc đẩy về phía trước một vc khác, có một nháy mắt đáng chú ý trong thanh điều hướng.
Sử dụng phương pháp này navigationController?.navigationBar.setValue(true, forKey: "hidesShadow")
trong viewWillAppear thanh bóng được ẩn trong bộ điều khiển xem hiển thị hiện tại.
Sử dụng 2 phương pháp này
navigationController?.navigationBar.setBackgroundImage(nil, for: .default)
navigationController?.navigationBar.setValue(false, forKey: "hidesShadow")
trong viewWillDisappear, nháy mắt vẫn xảy ra nhưng chỉ khi hình ảnh bóng xuất hiện trở lại và không phải là thanh điều hướng.
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()
}