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

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

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,627评论 25 709
  • 一、前言在之前的一片文章中已经介绍了 从iOS的第一个应用中能学习到哪些知识点 在那篇文章中主要介绍了一个iOS程...
    JiangWei_App阅读 5,553评论 1 1
  • 前言的前言 唐巧前辈在微信公众号「iOSDevTips」以及其博客上推送了我的文章后,我的 Github 各项指标...
    VincentHK阅读 10,771评论 3 44
  • 引言……李雪说,爱孩子,便是“如他所是”,而非“如我所愿”。我不要改变你,我只是“如你所是”地爱你。 有多少人能做...
    锦瑟年华2018阅读 13,098评论 0 1
  • 不同的人思考问题的抽象程度不一样。如果我们平时都是生活在一个四维的世界里,并且自我意识只在四维的世界(现实世界)里...
    张俊豪阅读 1,469评论 0 0