내 앱 수정에서 사용자 지정 탐색 컨트롤러 설정이 navigationBar
의 titleTextAttributes
,tintColor
그리고 다른 사람은 다른 시나리오에 따라 달라집니다.
iOS 13에서 앱을 실행하면 backBarButtonItem
화살표의 기본 색조가 파란색으로 표시됩니다. 뷰 디버거는 UIBarButtonItem
s 만UIImageView
푸른 색조를 가지고 .
내가 한 일은 navigationBar.tintColor
색을 변경하기 위해 두 번 설정하는 것이 었습니다 ...
public class MyNavigationController: UINavigationController, UINavigationControllerDelegate {
public var preferredNavigationBarTintColor: UIColor?
override public func viewDidLoad() {
super.viewDidLoad()
delegate = self
}
public func navigationController(_ navigationController: UINavigationController, willShow viewController: UIViewController, animated: Bool) {
// if you want to change color, you have to set it twice
viewController.navigationController?.navigationBar.tintColor = .none
viewController.navigationController?.navigationBar.tintColor = preferredNavigationBarTintColor ?? .white
// following line removes the text from back button
self.navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: .plain, target: nil, action: nil)
}
솔루션을 찾을 때 가장 이상한 부분은 일관성없는 결과였습니다.보기 수명주기 및 / 또는 모양 애니메이션 또는 Xcode 캐시와 관련이 있다고 생각합니다. :)