Swift 5 UIView has no UIResponder

208 Views Asked by At

Here is the sample source code:

ViewController:

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        view = Home()
    }

}

Home

class Home: UIView {
    ...
    func parent() -> UIViewController {
        var responder: UIResponder? = self.next
        while responder != nil {
            if let c = responder as? UIViewController { return c }
            else { responder = responder?.next }
        }
        return nil
    }
}

For the line

var responder: UIResponder? = self.next

The responder is always nil, that I cannot get the ViewController.

Something strange is that, I got no problem with the same function for all the subviews of Home.

0

There are 0 best solutions below