728x90
isBeingPresented
- 해당 UIViewController가 현재 present되고 있는 것인지 알려주는 필드이다.
- viewWillAppear 혹은 viewDidAppear에서 사용할 수 있으며 만약 present되는 중이라면 true이다.
isBeingDismissed
- 해당 UIViewController가 현재 dismiss되고 있는 것인지 알려주는 필드이다.
- viewWillDisappear 혹은 viewDidDisappear에서 사용할 수 있으며 만약 dismiss되는 중이라면 false이다.
import UIKit
open class TSViewController: UIViewController {
public var number = 0
open override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
if isBeingPresented || isMovingToParent {
print("나타남 \(number)")
}
}
open override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
if isBeingDismissed || isMovingFromParent {
print("사라짐 \(number)")
}
}
open override func present(_ viewControllerToPresent: UIViewController, animated flag: Bool, completion: (() -> Void)? = nil) {
viewControllerToPresent.modalPresentationStyle = .fullScreen
super.present(viewControllerToPresent, animated: flag, completion: completion)
}
}
import UIKit
import TasBase
import TasExample
class ViewController: TSViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func open(_ sender: Any) {
let vc = ViewController()
vc.number = number + 1
present(vc, animated: true, completion: nil)
}
@IBAction func close(_ sender: Any) {
dismiss(animated: true, completion: nil)
}
}
728x90
'iOS > 설명' 카테고리의 다른 글
[iOS] Class의 instance를 String으로 생성하기 (0) | 2021.12.10 |
---|---|
[iOS] CALayer의 anchorPoint, position (0) | 2021.12.08 |
[iOS] CALayer (0) | 2021.12.05 |
[iOS] Deeplinking, Universal link, Deferred deeplinking (0) | 2021.12.05 |
[iOS] UIActivityViewController 컨텐츠 공유 (0) | 2021.12.05 |
댓글