If you added container view programmatically, you should use call back to get back values from container view to parent view.
Parent Controller:
let containerView = UIView()
containerView.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(containerView)
NSLayoutConstraint.activate([
containerView.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 0),
containerView.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: 0),
containerView.topAnchor.constraint(equalTo: headerView.bottomAnchor, constant: 0),
containerView.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: 0),
])
let controller = YourViewController(nibName: "YourNibView", bundle: nil)
//This is important to get value back and also define callback to container view call as well
controller.callback = { result in
self.isCardJoinedFromJoinScreen = true
self.viewWillAppear(true)
}
addChild(controller)
controller.view.translatesAutoresizingMaskIntoConstraints = false
containerView.addSubview(controller.view)
NSLayoutConstraint.activate([
controller.view.leadingAnchor.constraint(equalTo: containerView.leadingAnchor),
controller.view.trailingAnchor.constraint(equalTo: containerView.trailingAnchor),
controller.view.topAnchor.constraint(equalTo: containerView.topAnchor),
controller.view.bottomAnchor.constraint(equalTo: containerView.bottomAnchor)
])
Container View Controller
define this callback
var callback : ((Bool)->())?
and at the point when you pass value to parent controller call this callback like
self.callback?(true) or self.callback?(false)