[Swift] UIViewから親のViewControllerを取得するためのExtension
の C# バージョン。
MIT ライセンスで。
generics 版と非 generics 版両方書いてる。特に意味はない。正直非 generics 版使う予定なさそう。
namespace UIKit { public static class UIViewExtensions { public static UIViewController GetParentViewController(this UIView view) { UIResponder parentResponder = view; while (parentResponder != null) { var nextResponder = parentResponder.NextResponder; if (nextResponder is UIViewController viewController) return viewController; parentResponder = nextResponder; } return null; } public static T GetParentViewController<T>(this UIView view) where T: UIViewController { UIResponder parentResponder = view; while (parentResponder != null) { var nextResponder = parentResponder.NextResponder; if (nextResponder is T viewController) return viewController; parentResponder = nextResponder; } return null; } } }