В этой строке:
let homeViewController: UIViewController = mainStoryboard.instantiateViewController(withIdentifier: "ViewControllerCall")
Вы говорите: «Создайте контроллер представления из раскадровки и определите его тип как UIViewController
».Тем не менее, вам нужно указать его как ViewControllerCall
.
. Вы можете сделать это путем приведения типа - добавив as? ViewControllerCall
.(Или as! ViewControllerCall
, если вы не хотите использовать предложение if let
).
Ваш код должен выглядеть следующим образом:
let mainStoryboard = UIStoryboard(name: "Main", bundle: nil)
if let homeViewController = mainStoryboard.instantiateViewController(withIdentifier: "ViewControllerCall") as? ViewControllerCall {
homeViewController.myVar = "x"
self.present(homeViewController, animated: true)
}
Или
let mainStoryboard = UIStoryboard(name: "Main", bundle: nil)
let homeViewController = mainStoryboard.instantiateViewController(withIdentifier: "ViewControllerCall") as! ViewControllerCall
homeViewController.myVar = "x"
self.present(homeViewController, animated: true)
Обратите внимание, что при использовании as!
вторым способом, который я представил, ваше приложение будет зависать, если контроллер представления с идентификатором ViewControllerCall
не имеет типа ViewControllerCall.