仍然是Swift的新手并试图解决我现在面对的一些问题...... :) 现在我创建了一个Struct来管理用户登录,注册并恢复passowrd ......
所以这里代码的一部分让我发疯了......
struct NetworkingService {
var dataBaseRef: FIRDatabaseReference!{
return FIRDatabase.database().reference()
}
var storageRef: FIRStorageReference {
return FIRStorage.storage().reference()
}
--------------------------------------------
// Reset Password
func resetpassword(email: String){
FIRAuth.auth()?.sendPasswordReset(withEmail: email, completion: { (error) in
if error == nil{
let alertView = UIAlertController(title: "SUCCESS!", message: "We have sent an email to \(email) with the information on how to reset your password. Thank you!", preferredStyle: UIAlertControllerStyle.alert)
alertView.addAction(UIAlertAction(title: "OK", style: .default) { (action:UIAlertAction!) in
})
UIApplication.shared.keyWindow?.rootViewController?.present(alertView, animated: true, completion: nil)
} else{
let alertView = UIAlertController(title: "Error!", message: "Error:\(error!.localizedDescription)", preferredStyle: UIAlertControllerStyle.alert)
alertView.addAction(UIAlertAction(title: "OK", style: .default) { (action:UIAlertAction!) in
})
UIApplication.shared.keyWindow?.rootViewController?.present(alertView, animated: true, completion: nil)
}
})
}
在我的控制器中我有一个简单的按钮,可以调用此函数
ResetPasswordVC{
@IBOutlet weak var emailTextField: UITextField!
var networkingService = NetworkingService()
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func resetPasswordPressed(_ sender: Any) {
networkingService.resetpassword(email: emailTextField.text!)
}
我想要做的是解除视图并在用户成功重置密码后返回到之前的viewController(基本上如果没有错误并且他已在警报上点击了确定。
问题:不能在结构中使用dismiss。我尝试了多种解决方案,但没有一种方法有效.... 试过这个:
let storyBoard = UIStoryboard(name: "Main", bundle: nil)
let loginVC = storyBoard.instantiateViewController(withIdentifier: "LoginVC") as! LoginVC
let appDelegate = UIApplication.shared.delegate as! AppDelegate
appDelegate.window?.rootViewController = loginVC
但是我不能使用任何动画(因此效果真的很难看)而真正的问题是LoginVC是一个标签视图,当我像这样回来时,底部的标签栏就不会显示...... 我已经失去了将近一整天......而且我真的不知道还有什么可以尝试...... 希望可以有人帮帮我! 附:如果我写了一些愚蠢的东西......请原谅我......就像我说我是新手......:D
THX!
答案 0 :(得分:0)
之前我遇到过类似的问题,你需要做的是显示Tabbar控制器并正确设置它的标签,而不是只显示LoginVC,否则就像你找到的那样,底部的标签栏将会消失