从嵌入式子 UIViewController 中获取父级 ViewController

Get Parent ViewController from within embedded child UIViewController

如何使用容器视图从嵌入其中的控制器中获取对父 UIViewController 的引用?

我想从 Child 中访问 Parent

当您在容器视图中添加视图控制器时,它被添加为子视图控制器

您可以通过以下方式访问它

  if let yourVC:YourViewController = self.childViewControllers.first(where: {[=10=] is yourVC:YourViewController}) as? YourViewController {
        // Here you got it 

    }

您可以使用 parent 属性 of viewController

访问父级
  if let parent = self.navigationController?.parent as? ParentControllerType {

     // Do what you want with the parent.

   } 

看到这个https://developer.apple.com/documentation/uikit/uiviewcontroller/1621362-parent

希望对您有所帮助

有一个简短而有趣的方法:在层次结构中向上,直到获得“真正的”父级,功能方式:

extension UIViewController {
    var trueParent: UIViewController {
        parent?.trueParent ?? self
    }
}