В настоящее время я создаю приложение с использованием xcode (Swift), но большинство моих дисплеев не полноэкранные, а некоторые есть. Мои проекты на данный момент включают четыре контроллера просмотра:
логин
регистрация
забыл пароль
и домой
Когда я запускаю приложение, вы можете войти в систему и перейти на главный экран в свою учетную запись (что мне удалось сделать в полноэкранном режиме), однако, когда приложение запущено и пользователь не вошел в систему, вам будет представлена страница входа с двумя кнопками :
«У вас нет учетной записи? Зарегистрируйтесь» -> которая приведет вас к форме регистрации
«Забыли пароль» -> которая приведет вас к форме забытого пароля
эти две кнопки не работают, когда приложение запущено, но когда пользователь вошел в учетную запись, выходит из системы и возвращает форму входа в систему, две вышеуказанные кнопки теперь работают. Я не уверен, почему это происходит, и не уверен, как это исправить, может кто-нибудь, пожалуйста, поможет?
это код, который позволяет вам переключаться на разные контроллеры:
из формы входа в перейдите к форме регистрации
let signUpButton: UIButton = {
let button = UIButton(type: .system)
button.setTitle("Don't have an account? Sign up", for: .normal)
button.setTitleColor(UIColor(red: 170/255, green: 170/255, blue: 170/255, alpha: 1), for: .normal)
button.addTarget(self, action: #selector(handleShowSignUp), for: .touchUpInside)
return button
}()
@objc func handleShowSignUp() {
let signUpVC = SignUpVC()
self.navigationController?.pushViewController(signUpVC, animated: true)
}
из формы входа, чтобы перейти к форме забытого пароля:
let forgotPasswordButton: UIButton = {
let button = UIButton(type: .system)
button.setTitle("Forgot password?", for: .normal)
button.setTitleColor(UIColor(red: 170/255, green: 170/255, blue: 170/255, alpha: 1), for: .normal)
button.addTarget(self, action: #selector(forgotPassword), for: .touchUpInside)
return button
}()
@objc func forgotPassword() {
let forgotPassword = ForgotPasswordVC()
self.navigationController?.pushViewController(forgotPassword, animated: true)
}
Возвращаясь к моему исходному вопросу, все вышеперечисленное отображается в полноэкранном режиме, пока вы выходите оттуда, все возвращается к новому макету карты, где вы можете видеть предыдущий вид в фоновом режиме, и я попытался добавить эту строку ко всем контроллерам, но, похоже, она не работает:
logInVC.modalPresentationStyle = .fullScreen
(очевидно, отформатирован в соответствии с указанным c контроллером просмотра)
как это исправить?
Я не добавил ничего в свой файл appdelegate, кроме:
FirebaseApp.configure()
Я добавил следующее в свой делегат сцены:
guard let mainScene = (scene as? UIWindowScene) else { return }
window = UIWindow(windowScene: mainScene)
let mainTabVC = MainTabVC()
window?.rootViewController = UINavigationController(rootViewController: mainTabVC)
window?.makeKeyAndVisible()