【发布时间】:2020-05-11 06:13:43
【问题描述】:
这个问题听起来有点混乱,但我不知道如何更好地描述它。让我解释一下:
出现的第一个ViewController 是FirstLaunchVC,用户在其中输入他的电子邮件,如果他已注册,他将访问LoginVC,然后从那里访问MainVC。一切正常。
在MainVC 中,用户可以退出并返回FirstLaunchVC。但是,在执行 weiterButton 之后应该将用户带到 LoginVC 之后没有做任何事情。
FirstLaunchVC:
@objc func weiterButtonTapped() {
email = emailTextfield.text!.trimmingCharacters(in: .whitespacesAndNewlines)
//prüfen, ob Email schon registriert ist
Auth.auth().fetchSignInMethods(forEmail: email) { (methods, error) in
//Email ist noch nicht registriert -> sign up
if methods == nil {
let SignUpView = self.storyboard?.instantiateViewController(withIdentifier: "SignUpVC") as! SignUpViewController
SignUpView.email = self.email
self.navigationController?.pushViewController(SignUpView, animated: false)
}
//Email ist registriert -> login
else {
print("hi")
self.view.endEditing(true)
let LoginView = self.storyboard?.instantiateViewController(withIdentifier: "LoginVC") as! LoginViewController
LoginView.email = self.email
self.navigationController?.pushViewController(LoginView, animated: true)
}
}
}
主要问题:
print(hi) 正在打印,但pushViewController 在退出后无法正常工作。
登录VC:
func transitionToHome () {
let homeVC =
storyboard?.instantiateViewController(withIdentifier: Constants.Storyboard.homeViewController) as? MainViewController
let navigationController = UINavigationController(rootViewController: homeVC!)
view.window?.rootViewController = navigationController
view.window?.makeKeyAndVisible()
}
MainVC:
这是用户可以退出的地方。
@objc func signoutButtonTapped() {
UserDefaults.standard.setIsLoggedIn(value: false)
UserDefaults.standard.synchronize()
let firstLaunchVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "FirstLaunchVC")
self.navigationController?.present(firstLaunchVC, animated: true)
}
我尽力解释问题。如果还有什么不清楚的,请告诉我。我很高兴得到任何帮助:)
【问题讨论】:
-
导航控制器用于推动 viewController 不显示新的,因此将行更改为 'self.navigaitonController?.push(firstLaunchVC,animated)'
-
好的,这确实有效,但我想要
present动画而不是push动画。这可能吗? -
您可以更改 google 的演示样式
-
是的,在这里找到它:stackoverflow.com/questions/31970617/…。谢谢:)
标签: ios swift uiviewcontroller uinavigationcontroller