본문 바로가기
iOS/설명

[iOS] isBeingPresented, isBeingDismissed

by Sky Titan 2021. 12. 7.
728x90
 

Apple Developer Documentation

 

developer.apple.com

 

 

Apple Developer Documentation

 

developer.apple.com

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

댓글