- (UIViewController *)viewController {
for (UIView *nextView = self; nextView; nextView = nextView.superview) {
UIResponder *nextResponder = [nextView nextResponder];
if ([nextResponder isKindOfClass:[UIViewController class]]) {
return (UIViewController *)nextResponder;
}
}
return nil;
}
extension UIResponder {
@objc var findViewController: UIViewController? {
if let vc = self as? UIViewController {
return vc
}
return next?.findViewController
}
}
UIViewController *vc = [view __dbg_viewController];
或者
UIViewController *vc = [view _viewDelegate];