通过当前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