iOS开发小贴士—通过view获取view所处的视图控制器

在项目开发中是否遇到过view和控制器分开写的情况,但是又想点击该view进行页面的跳转

实现代码

#pragma mark -点击方法
- (void)pushNextViewController{
    BaseViewController *view = [[BaseViewController alloc] init];
    [[self viewController].navigationController pushViewController:view animated:YES];
}
/**
 *  返回当前视图的控制器
 */
- (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;
}

当然个人认为,为了方便以后代码的维护和阅读,最好不要在view中进行类似的操作,可以通过代理的方法,将跳转操作统一在控制器中完成。

你可能感兴趣的:(iOS开发小贴士—通过view获取view所处的视图控制器)