在自己封装控件时,有时需要获取该控件(UIView)所在的视图控制器(UIViewController),可以使用以下方式获得。
通过为 UIView 添加分类实现:
1 2 3 4 5 6 7 8 9 10 11 12
|
- (UIViewController *)viewController { UIResponder *responder = self; while ((responder = [responder nextResponder])) if ([responder isKindOfClass: [UIViewController class]]) return (UIViewController *)responder; return nil; }
|
🎁彩蛋
1 2 3 4 5 6 7 8
|
- (UINavigationController *)navigationController { UIResponder *responder = self; while ((responder = [responder nextResponder])) if ([responder isKindOfClass: [UINavigationController class]]) return (UINavigationController *)responder; return nil; }
|
近期评论