前言:我们在VC中添加一个自定义的View时,有时候添加的这个View上,可能会有按钮或者其他的点击事件,如果该事件是需要push或者present到下一个VC,这些操作就需要在这个View中获取当前正在显示的ViewController。
写了一个UIView的category
代码如下:
#import "UIView+UIViewController.h"
@implementation UIView (UIViewController)
/**
获取当前页面的UIViewController
@return UIViewController
*/
- (UIViewController *)getCurrentViewController {
UIResponder *next = [self nextResponder];
do {
if ([next isKindOfClass:[UIViewController class]]) {
return (UIViewController *)next;
}
next = [next nextResponder];
} while (next != nil);
return nil;
}
@end
这样当需要在View中push或者present到下一个VC时就很方便了 。。。