1. 程式人生 > >iOS----在子檢視中獲取父檢視的控制器

iOS----在子檢視中獲取父檢視的控制器

在實際專案當中,我們經常會遇到需要在一個父類為UIView的子檢視上進行POP或是PUSH操作,但該子檢視是不能用POP或PUSH的,這時候我們就可以根據該子檢視獲取到父檢視的控制器,從而進行POP或PUSH,具體方法如下:

/**
 *  獲取父檢視的控制器
 *
 *  @return 父檢視的控制器
 */
- (UIViewController *)XC_GetViewControllerWithView:(UIView *)view
{
    for (UIView* next = [view superview]; next; next = next.superview) {
        UIResponder *nextResponder = [next nextResponder];
        if ([nextResponder isKindOfClass:[UIViewController class]]) {
            return (UIViewController *)nextResponder;
        }
    }
    return nil;
}