Could not cast value of type 'UINavigationController'

Based on Semih's answer, you can also do this to pass a variable to next segue if you don't want to use an identifier:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if let nav = segue.destination as? UINavigationController, 
        let vc = nav.topViewController as? TestViewController {
        vc.username = "Test"
    }
}

Answering my own question. In this case we need to access the child view by doing something like this:

let nav = segue?.destinationViewController as! UINavigationController
let svc = nav.topViewController as! SearchViewController
svc.toPassSearchKeyword = searchKeyword;

Tags:

Xcode

Swift