Problem
- UIViewから、自分を配置しているViewControllerを取得する
Solution
以下のようにUIViewのprotocol extensionを作成する
UIView+Extension.swift
extension UIView {
var parentViewController: UIViewController? {
get {
var parentResponder: UIResponder? = self
while true {
guard let nextResponder = parentResponder?.next else { return nil }
if let viewController = nextResponder as? UIViewController {
return viewController
}
parentResponder = nextResponder
}
}
}
}