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中进行类似的操作,可以通过代理的方法,将跳转操作统一在控制器中完成。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容