1、通过UIResponder获取:
//获得所在的ViewController
//如果你有base viewcontroller,则UIViewController对应的是你的base viewcontroller
- (UIViewController *)getSupreViewController
{
//此处的self.view指的是:如果你想获取的是控制器所在的父控制器,传入的是你当前控制器的view;如果想获取的是一个view的父控制器,直接传当前view本身就可以了
for (UIView* next = [self.view superview]; next; next = next.superview) {
UIResponder* nextResponder = [next nextResponder];
if ([nextResponder isKindOfClass:[UIViewController class]]) {
return (UIViewController*)nextResponder;
}
}
return nil;
}
未完待续,发现好的方法持续更新。。