從UIView到UIViewController?是否有一個內置的方法可以從UIView向其UIViewController?我知道你可以從UIViewController向其UIView通孔[self view]但我想知道是否有反向引用?
3 回答

繁星淼淼
TA貢獻1775條經驗 獲得超11個贊
@interface UIView (FindUIViewController)- (UIViewController *) firstAvailableUIViewController;- (id) traverseResponderChainForUIViewController; @end@implementation UIView (FindUIViewController)- (UIViewController *) firstAvailableUIViewController { // convenience function for casting and to "mask" the recursive function return (UIViewController *)[self traverseResponderChainForUIViewController];}- (id) traverseResponderChainForUIViewController { id nextResponder = [self nextResponder]; if ([nextResponder isKindOfClass:[UIViewController class]]) { return nextResponder; } else if ([nextResponder isKindOfClass:[UIView class]]) { return [nextResponder traverseResponderChainForUIViewController]; } else { return nil; }}@end
// from a UIView subclass... returns nil if UIViewController not available UIViewController * myController = [self firstAvailableUIViewController];

隔江千里
TA貢獻1906條經驗 獲得超10個贊
UIView
UIResponder
. UIResponder
-nextResponder
nil
. UIView
UIResponder
UIView
-nextResponder
@interface UIView (APIFix)- (UIViewController *)viewController;@end@implementation UIView (APIFix)- (UIViewController *)viewController { if ([self.nextResponder isKindOfClass:UIViewController.class]) return (UIViewController *)self.nextResponder; else return nil;}@end
UIView
- 3 回答
- 0 關注
- 431 瀏覽
添加回答
舉報
0/150
提交
取消