UITabBarContoller
를 커스텀하여 사용하고 있을 때 Xcode 16으로 빌드하면 tabBar
를 선택하면서 화면 전환을 할 때 의도하지 않은 애니메이션이 추가되면서 화면 전환이 발생.
또한, 탭 전환 시에 의도하지 않은(다른 특정 상황의) NavigationBar
의 색상이 나타나는 현상이 발생하여 자연스럽지 않은 전환이 이뤄지게 됨.
Xcode 16, iOS 18에서 새로운 스타일의 UITabBar가 나타나면서 애니메이션이 추가된 것 같음..
(작성중..)
selectedIndex
, selectedViewController
를 오버라이드 하여 iOS 18 이상 기기의 경우에는 각각의 프로퍼티 값이 변경될 때 UIView.performWithoutAnimation
의 클로저 내에 값을 할당해줌으로 써 의도하지 않은 애니메이션이 발생하지 않도록 수정함.
class CustomTabBarController: UITabBarController {
override var selectedIndex: Int {
set {
if #available(iOS 18.0, *) {
UIView.performWithoutAnimation {
super.selectedIndex = newValue
}
} else {
super.selectedIndex = newValue
}
}
get {
super.selectedIndex
}
}
override var selectedViewController: UIViewController? {
set {
if #available(iOS 18.0, *) {
UIView.performWithoutAnimation {
super.selectedViewController = newValue
}
} else {
super.selectedViewController = newValue
}
}
get {
super.selectedViewController
}
}
}