其他分享
首页 > 其他分享> > 通过当前view得到所在的viewcontroller

通过当前view得到所在的viewcontroller

作者:互联网

 1 @implementation UIView (GetVCAdditions)
 2 
 3 - (UIViewController *)GetiewController {
 4     Class vcc = [UIViewController class];
 5     UIResponder *responder = self;
 6     while ((responder = [responder nextResponder]))
 7         if ([responder isKindOfClass: vcc])
 8             return (UIViewController *)responder;
 9     return nil;
10 }

 这里其实用到了 UIResponder

1 - (UIResponder*)nextResponder;

返回接收者的下一个相应,如果没有就返回nil

UIResponder类不自动存储和设置下一个响应者,而是默认返回nil。子类必须override这个方法来设置下一个响应者。

UIView实现了这个方法,因为可以返回管理这个UIView的UIViewController或者它的父类;

UIViewController实现了这个方法,返回UIViewController的View的父View;

UIWindow发挥UIApplication对象;

UIApplication返回nil

 

转载于:https://www.cnblogs.com/UncleJoke/p/3975466.html

标签:返回,UIResponder,nil,viewcontroller,所在,responder,UIView,UIViewController,view
来源: https://blog.csdn.net/weixin_34050389/article/details/94317493