관리 메뉴

김종권의 iOS 앱 개발 알아가기

[iOS - swift] popToRootViewController의 completion 인자를 가진 커스텀 함수 만드는 방법 (CATransaction 사용) 본문

iOS 응용 (swift)

[iOS - swift] popToRootViewController의 completion 인자를 가진 커스텀 함수 만드는 방법 (CATransaction 사용)

jake-kim 2021. 1. 12. 22:10

CATransaction이란?

  • Core Animation의 한 종류
  • implicit transaction과 explicit transaction (run loop개념과 동일)에서 explicit transaction을 할 때 CATransaction을 run loop에 CATransaction.commit()코드 이후에 보내게 됨
  • CATransaction.commit()코드 전에 CATransaction 속성을 지정해주면 전환 관련 애니메이션이 지정해준대로 명시적(explicit)으로 실행

사용 방법

  • UINavigationController를 extension하여 사용
extension UINavigationController {
    func popToRoot(completion: @escaping () -> Void) {
        CATransaction.begin()
        CATransaction.setCompletionBlock(completion)
        navigationController?.popToRootViewController(animated: true)
        CATransaction.commit()
    }
}
Comments