Не передаются данные segue


#1

Коллеги, добрый день столкнулся с проблемой передачи данных на другой контроллер
Приходят пустые данные

  @IBAction func loginTapped(_ sender: UIButton) { 
.......
    var textStr = "Данные 1"
    performSegue(withIdentifier: "projectSegue", sender: textStr)

.....
}

        override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
            let vc = segue.destination as? ProjectViewController {
                vc.userProfile = sender as! String
        }

class ProjectViewController: UIViewController, UITableViewDelegate, UITableViewDataSource{
    ///Второй контроллер 
    var userProfile = ""

     override func viewDidLoad() {
            super.viewDidLoad()
            print("\(userProfile)")
    }
}

#2

#3

На первый взгляд все верно, но попробуйте по другому определить переменную во втором контроллере
var userProfile: String!