22 lines
735 B
Objective-C
22 lines
735 B
Objective-C
// Source: http://stackoverflow.com/a/3732812/1123156
|
|
|
|
#import "UIView+FindUIViewController.h"
|
|
|
|
@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
|