在项目开发中,经常会需要一种情况,在一个view类中,点击某个按钮,需要从UINavigationController中,push到下一个页面,但是单纯的view类,并不能实现该方法,所以需要通过传递链获取到控制器来完成。
- (UIViewController *)viewController {
for (UIView* next = [self superview]; next; next = next.superview) {
UIResponder *nextResponder = [next nextResponder];
if ([nextResponder isKindOfClass:[UIViewController class]]) {
return (UIViewController *)nextResponder;
}
}
return nil;
}
在需要用到地方,直接调用即可。