Внимательно посмотрите на ошибку, о которой сообщает Swift: он не может найти переменную с именем initialViewController
в этой части кода.
Переменные доступны только в том блоке, в котором они созданы. Другими словами, вам нужно вывести объявление initialViewController
из оператора if
, если вы хотите использовать его где-то еще за пределами оператора if
. Вы можете сделать это, сделав вместо него var
:
// Let Swift know that we’re going to make this a UIViewController
var initialViewController: UIViewController
if condition {
// Now, initialViewController has been instantiated; it just needs a value
initialViewController = storyboard.instantiateViewController(withIdentifier: "landscape")
} else {
initialViewController = storyboard.instantiateViewController(withIdentifier: "portrait")
}
// We can safely use it outside of the if statement, but it may need unwrapping since it was declared as a var
self.window?.rootViewController = initialViewController!
Обратите внимание, что копирование / вставка этого точного кода не будет работать, поскольку я не определил переменные storyboard
или condition
: посмотрим, сможете ли вы изменить текущий код, чтобы исправить проблему, как я описал здесь!