1

I have some codes in my project and under below codes gives warning;

 private var viewController: UIViewController? {
        for var next:UIView? = self.superview; next != nil; next = next?.superview {
            let responder = next?.nextResponder()
            if let vc = responder as? UIViewController {
                return vc
            }
        }
        return nil
    }

Warning line under below:

for var next:UIView? = self.superview; next != nil; next = next?.superview {

How can I fix it ?

halfer
  • 19,824
  • 17
  • 99
  • 186
SwiftDeveloper
  • 7,244
  • 14
  • 56
  • 85

1 Answers1

1

Here how you rewrite your code with while cycle:

var viewController: UIViewController? {
    var next: UIView? = self.superview
    while next != nil {
        let responder = next?.nextResponder()
        if let vc = responder as? UIViewController {
            return vc
        }
        next = next?.superview
    }
    return nil
}
Yury
  • 6,044
  • 3
  • 19
  • 41