받아 들인 대답은 나를 위해 일했지만 뒤로 튀어 나오거나 다른 vc로 앞으로 밀 때 그림자 이미지가 다시 나타나기를 원할 때 탐색 모음에서 눈에 띄는 깜박임이 있음을 알았습니다.
이 방법 사용 navigationController?.navigationBar.setValue(true, forKey: "hidesShadow")
viewWillAppear 를 하면 현재 보이는 뷰 컨트롤러에서 섀도우 바가 숨겨집니다.
이 두 가지 방법 사용
navigationController?.navigationBar.setBackgroundImage(nil, for: .default)
navigationController?.navigationBar.setValue(false, forKey: "hidesShadow")
viewWillDisappear에서 깜박임은 여전히 발생하지만 그림자 이미지가 다시 나타날 때만 발생하고 탐색 모음 자체는 표시되지 않습니다.
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()
}