偶尔想在子视图中获取到当前的视图控制器,做些事情。。。
import UIKit
//获取视图控制器的分类方法
extension UIView {
func getController() ->UIViewController{
var result : UIViewController?
var responder = self.next
while responder != nil {
if responder!.isKind(of: UIViewController.self) {
result = responder as? UIViewController
break
}
responder = responder?.next
}
return result!
}
}
当然个人觉得最好还是不要这样做,还是用闭包或者代理,逆向把值传回视图控制器做处理。如果向偷懒,实在懒得传值,可以这样试试。