태그: iOS15
- This topic has 2개 답변, 2명 참여, and was last updated 3 years, 1 month 전에 by KM BANG.
-
글쓴이글
-
-
KM BANG참가자
- 글작성 : 1
- 답글작성 : 1
현재 iOS 15 대응을 하고 있는데요.
기본 NavigationBar가 Black이고 status bar color는 white입니다.
특정 ViewController에서 NavigationBar를 white로 바꾸고 있는데 여기서는 status bar가 black으로 설정이 되는데
이전 화면으로 돌아갈때 다시 NavigationBar를 Black로 바꾸면 status bar도 black으로 계속 설정되어 보이지 않는 문제를 겪고 있습니다.
AppDelegate에서 아래와 같이 작성하고
if #available(iOS 13, *) {
let standardAppearance = UINavigationBarAppearance()
standardAppearance.configureWithOpaqueBackground()
standardAppearance.backgroundImage = UIImage()
let compactAppearance = standardAppearance.copy()
compactAppearance.backgroundImage = UIImage()
UINavigationBar().standardAppearance = standardAppearance
UINavigationBar().scrollEdgeAppearance = standardAppearance
UINavigationBar().compactAppearance = compactAppearance
if #available(iOS 15.0, *) { // For compatibility with earlier iOS.
UINavigationBar().compactScrollEdgeAppearance = compactAppearance
}
} else {
UINavigationBar.appearance().shadowImage = UIImage()
UINavigationBar.appearance().setBackgroundImage(UIImage(), for: .default)
}
특정 ViewController에서 dismiss할때 viewWillDisappear에서
if #available(iOS 15, *) {
let standardAppearance = UINavigationBarAppearance()
standardAppearance.configureWithOpaqueBackground()
standardAppearance.backgroundColor = .black
navigationController?.navigationBar.standardAppearance = standardAppearance
navigationController?.navigationBar.scrollEdgeAppearance = standardAppearance
UINavigationBar().barStyle = .black
self.navigationController?.navigationBar.tintColor = .white
} else {
self.navigationController?.navigationBar.barStyle = .black
self.navigationController?.navigationBar.backgroundColor = .black
self.navigationController?.navigationBar.barTintColor = .black
self.navigationController?.navigationBar.tintColor = .white
}
이런식으로 코드를 작성했습니다.
preferredStatusBarStyle를 사용해도 status bar 색이 돌아오지 않아서 질문드립니다.
해결 방법이 있을까요..?
2021-09-30 오후 11:49 #48627 -
-
KM BANG참가자
- 글작성 : 1
- 답글작성 : 1
현재 프로젝트에는 SceneDelegate를 사용하지 않고 있습니다.
특정 ViewController에서 viewWillAppear에 NavigationBar를 white로 변경해주는 코드를 작성했습니다.
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.navigationBar.barStyle = .default
self.navigationController?.navigationBar.tintColor = .dark
if #available(iOS 13, *) {
let standardAppearance = UINavigationBarAppearance()
standardAppearance.configureWithDefaultBackground()
standardAppearance.backgroundColor = .white
standardAppearance.shadowColor = .clear
navigationController?.navigationBar.standardAppearance = standardAppearance
navigationController?.navigationBar.scrollEdgeAppearance = standardAppearance
} else {
self.navigationController?.navigationBar.backgroundColor = .clear
self.navigationController?.navigationBar.barTintColor = .white
self.navigationController?.navigationBar.topItem?.title = “”
}
}
여기서는 status bar도 black으로 잘 변경되는데 이전화면으로 돌아갈때 status bar 색이 바뀌질 않네요 ..ㅠ
2021-10-01 오전 10:09 #48659
-
-
-
글쓴이글
- 답변은 로그인 후 가능합니다.