在View上获取当前控制器

OC版本

id responder = self.nextResponder;while (![responder isKindOfClass: [UIViewController class]] && ![responder isKindOfClass: [UIWindow class]])    {

responder = [responder nextResponder];

}

if ([responder isKindOfClass: [UIViewController class]])    {

// responder就是view所在的控制器

// do something

}

Swift版本

func viewController(aClass: AnyClass) -> UIViewController?{

for(var next=self.superview;(next != nil);next=next?.superview){

let nextResponder = next?.nextResponder()

if((nextResponder?.isKindOfClass(aClass)) != nil){

return nextResponder as? UIViewController

}

}

return nil

}

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

推荐阅读更多精彩内容

  • 1、禁止手机睡眠[UIApplication sharedApplication].idleTimerDisabl...
    DingGa阅读 1,143评论 1 6
  • 1、禁止手机睡眠 [UIApplicationsharedApplication].idleTimerDisabl...
    小热狗阅读 923评论 0 2
  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 1,767评论 0 9
  • 《侠客的梦想》 我再一次偶遇遇之,我问他:“什么是侠客的梦想?” 遇之默然到:侠客的心中,总是悬挂着一柄剑。看到任...
    钟麟书阅读 600评论 0 0
  • 大概并没有多少时间来构思这篇文章该怎么写,想想这只是前一阵做的一个噩梦罢了,而且离上一次做到这个噩梦的时间隔了得有...
    钱琪阅读 702评论 0 1