美文网首页
通过响应者链条找到控制器

通过响应者链条找到控制器

作者: 码农淏 | 来源:发表于2016-12-03 16:24 被阅读1次

Object-C

UIViewController *vc = nil;
        for (UIView* next = [self superview]; next; next = next.superview) {
            UIResponder *nextResponder = [next nextResponder];
            if ([nextResponder isKindOfClass:[UIViewController class]]) {
                vc = (UIViewController *)nextResponder;
                break;
        }
}

swift

- parameter view: 当前view
     
     - returns: view所在的viewcontroller
     */
    class func viewController(_ view:UIView) -> UIViewController  {
        var next = view as? UIView
        
        while next != nil {
            let nextResponder = next?.next
            if let nextResponder =  nextResponder as? UIViewController{
                return nextResponder;
            }
            next = next?.superview
        }
        return UIViewController()
    }

相关文章

  • 通过响应者链条找到控制器

    Object-C swift

  • iOS/OC: 响应链.nextResponder

    这个方法通过响应者链条,从view里获取到了想要操作的父层控制器,做了一些诡异的操作.

  • 响应者链

    1> 什么是响应者链 响应者链条是由多个响应者对象连接起来的链条,其中响应者对象是能处理事件的对象,所有的View...

  • 什么是响应者链

    响应者链条是由多个响应者对象连接起来的链条,其中响应者对象是能处理事件的对象,所有的View和ViewContro...

  • 响应者链条

    1.什么是事件响应链2.touch 事件分发3.hit-test 底层实现4.应用 1.什么是事件响应链 大多数事...

  • 响应者链条

    什么是事件? iOS中事件分为3大类 : 触摸事件, 加速计事件和远程控制事件.当你的手指在手机屏幕上触摸时, 产...

  • 响应者链条

    响应者链条:是由多个响应者对象连接起来的链条 作用:能很清楚的看见每个响应者之间的联系,并且可以让一个事件多个对象...

  • 响应者链条

    ** 响应者链条** 在iOS中不是任何对象都能处理时间,只有继承了UIResponder的对象才能接收并处理事件...

  • 响应者链条

  • 响应者链条

    简单来说就是 :一级一级的找到响应的视图,如果没有就传给UIWindow实例和UIApplication实例,要是...

网友评论

      本文标题:通过响应者链条找到控制器

      本文链接:https://www.haomeiwen.com/subject/rwscmttx.html