Why is KeyboardLayoutGuide not applied in viewIsAppearing() in iOS 15.0?

viewIsAppearing is available in iOS 13 and above, and I understand that setting the layout in this lifecycle is a good way to do it. But when I use it, confirmed that UIKeyboardLayout does not work properly in viewIsAppearing in iOS versions lower than 16.0.

There is a small problem not only with viewIsAppearing, but also with viewDidLoad().

In viewDidLoad(), the component to which UIKeyboardLayoutGuide is applied is visible when the screen first appears. However, there is a problem where the layout with UIKeyboardLayoutGuide applied is not visible when returning after changing the navigation screen (Push & Pop).

I confirmed that UIKeyboardLayoutGuide is applied properly in viewIsAppearing and viewDidLoad in iOS 16.0 and higher versions.

Below is the code and environment for reproducing the problem situation.

====================================================

Envirionment: M1 Pro(Sonoma v14.5), Xcode(v15.4), iPhone Simulator (iOS v15.0, v15.2)

import UIKit
import SnapKit

final class ViewController: UIViewController {
    private let uiTextField: UITextField = {
        $0.placeholder = "search"
        $0.backgroundColor = .red
        return $0
    }(UITextField())
    
    
    override func viewIsAppearing(_ animated: Bool) {
        super.viewIsAppearing(animated)
        view.backgroundColor = .white
        
        layout()
    }
    
    private func layout() {
        view.addSubview(uiTextField)
        uiTextField.snp.makeConstraints {
            $0.height.equalTo(50)
            $0.horizontalEdges.equalToSuperview()
            
            $0.bottom.equalTo(view.keyboardLayoutGuide.snp.top)
        }
    }
    
    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        view.endEditing(true)
    }
}

I wonder if I haven't checked what I need to check yet, or if there are other problems.

Why is KeyboardLayoutGuide not applied in viewIsAppearing() in iOS 15.0?
 
 
Q