Похоже, вы просто добавляете представление подконтроллеров в свое собственное представление контроллера панели вкладок.Я бы предложил использовать механизм добавления дочернего контроллера представления, чтобы получить преимущества жизненного цикла viewController.Ниже приведен фрагмент кода: -
extension UIViewController {
func addChildViewController(_ viewController : UIViewController?, forView container: UIView){
guard let viewController = viewController else { return }
viewController.view.translatesAutoresizingMaskIntoConstraints = false
addChildViewController(viewController)
container.addSubview(viewController.view)
let childView = viewController.view
container.addConstraint(NSLayoutConstraint(item: childView!, attribute: .top, relatedBy: .equal, toItem: container, attribute: .top, multiplier: 1.0, constant: 0))
container.addConstraint(NSLayoutConstraint(item: childView!, attribute: .bottom, relatedBy: .equal, toItem: container, attribute: .bottom, multiplier: 1.0, constant: 0))
container.addConstraint(NSLayoutConstraint(item: childView!, attribute: .leading, relatedBy: .equal, toItem: container, attribute: .leading, multiplier: 1.0, constant: 0))
container.addConstraint(NSLayoutConstraint(item: childView!, attribute: .trailing, relatedBy: .equal, toItem: container, attribute: .trailing, multiplier: 1.0, constant: 0))
viewController.didMove(toParentViewController: self)
}
func removeChildVC(_ viewController : UIViewController?){
if let viewController = viewController{
viewController.willMove(toParentViewController: nil)
viewController.view.removeFromSuperview()
}
}
}
Используйте эти методы в пользовательской панели вкладок viewController