Swift 擷取view所在的ViewController

來源:互聯網
上載者:User

標籤:sequence   self   int   skin   control   color   round   span   gre   

 

 

//uiview的擴充

extension UIView{

    func getFirstViewController()->UIViewController?{

        for view in sequence(first: self.superview, next: {$0?.superview}){

            if let responder = view?.next{

                if responder.isKind(of: UIViewController.self){

                    return responder as? UIViewController

                }

            }

        }

        return nil

       

    }

}

 

 

 

    

    override func viewDidLoad() {

        super.viewDidLoad()

        //調用

        let mView = UIView(frame: CGRect(origin: CGPoint.zero, size:CGSize(width: 100, height: 100)))

        mView.backgroundColor = UIColor.red

        self.view.addSubview(mView)

        

        //擷取mView的ViewController

        let vc = mView.getFirstViewController()

    }

Swift 擷取view所在的ViewController

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.