티스토리 뷰
CATransaction 사용하여 애니매이션되는 속성(트리거 여부, 타이밍, 기간 등)을 설정할 수 있다.
아래 코드는 navigationController에서 pushViewController를 사용하여 화면을 전환할 경우, complete method를 추가하여 사용할 수 있도록 컨트롤러를 확장한 코드이다.
// navigationController 확장
extension UINavigationController {
// pushViewController 실행후 complete callback 구현 가능하도록 수정
public func pushViewController(viewController: UIViewController, animated: Bool, completion: (() -> Void)?) {
CATransaction.begin()
CATransaction.setAnimationDuration(2) // sleep 2 seconds
CATransaction.setCompletionBlock(completion)
CATransaction.setCompletionBlock {
// callback 함수를 받지 않고 직접 코드 작성도 가능함.
}
pushViewController(viewController, animated: animated)
CATransaction.commit()
}
}
// 메서드 실행 예시
navigationController.pushViewController(viewController: presentingView!, animated: true) {
// 위 코드에서 complete에 들어갈 코드블럭
self.view.removeFromSuperview()
}
'Swift' 카테고리의 다른 글
UITextView - attributed text center alignment (0) | 2018.04.03 |
---|---|
keyboard height 구하는 방법 (0) | 2018.04.03 |
App Store Icon 에러!! (0) | 2018.03.29 |
아이폰 status bar 배경색 변경하기 (0) | 2017.06.07 |
APNS 구현해보기 (0) | 2017.02.22 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- UIControl
- BaseViewController
- Closure
- Design Pattern
- testing
- xib
- Coordinator
- IOS
- http live streaming
- UIBarButtonItem
- TDD
- RECORDING
- UIButton
- HLS
- Realm
- ssh
- AVKit
- carousel
- AssociatedObject
- CollectionView
- m3u8
- permission error
- Swift
- database
- AVFoundation
- NIB
- Video
- Cleancode
- pagingView
- customAlertView
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함