Чтение Изучение Swift путем создания приложений Эмиль Атанасов, я пытаюсь написать код в делегате приложения, чтобы запустить приложение на TabbarViewController
, если пользователь уже вошел в систему (а не в SignInViewController)).Однако, несмотря на написание двух похожих функций для экрана входа в систему и контроллера основного вида (так же, как в книге), я получаю множество ошибок в функции загрузки контроллера основного вида - openMainViewController ()
ошибки: «Для сопоставления с образцом в условии требуется ключевое слово case
». Использование неразрешенного идентификатора rootViewController
'
Я проследил книгу, убедился, что идентификаторысовпадение в основной раскадровке (хотя TabbarViewController
не имеет класса, это нормально?)
func openSignInScreen() {
if let signInViewController = self.window?.rootViewController?.storyboard?.instantiateViewController(withIdentifier: "SignInViewController") as? SignInViewController {
signInViewController.view.frame = (self.window?.rootViewController?.view.frame)!
signInViewController.view.layoutIfNeeded()
//nice transition between views
UIView.transition(with: window!, duration: 0.3, options: .transitionCrossDissolve, animations: {self.window?.rootViewController = signInViewController }, completion: { completed in //nothing to do here
})
}
}
//continue.. now open main View Controller
func openMainViewController() {
if let rootViewController() = self.window?.rootViewController?.storyboard?.instantiateViewController(withIdentifier: "TabbarViewController") {
rootViewController().view.frame = (self.window?.rootViewController?.view.frame)!
rootViewController().view.layoutIfNeeded()
//nice transition between views
UIView.transition(with: window!, duration: 0.3, options: .transitionCrossDissolve, animations: {self.window?.rootViewController = rootViewController() }, completion: { completed in //maybe do something here
})
}
}
Я ожидаю, так как я написал код так же, как в книге, что не будетбыть какие-либо проблемы с идентификацией.Тем не менее, я получаю кучу ошибок в функции openMainViewController()
, и я действительно новичок в программировании в целом - так что пока не знаю, куда идти.