从重置密码邮件 ios 重定向时重定向到特定的 viewcontroller
Redirect to a particular viewcontroller when redirecting from reset password mail ios
在我的应用程序中,我有一个主页 viewcontroller,用户可以从中登录、重设密码并跳至其他页面。
如果我点击 "Forgot password",我会收到一封可以重设密码的邮件。当我从电子邮件重定向回来时,我希望该应用程序留在同一个主页 viewcontroller。
如果我的流程是:在主页点击 "Forgot password" viewcontroller -> 然后转到忘记密码 viewcontrollers -> 退出应用程序 -> 然后转到我的邮件并重置password ,即使这样我也希望应用程序在前台打开时在主页本身中打开,而不是在我退出应用程序或最小化应用程序的任何其他 viewcontrollers 上打开。
我该怎么做?谢谢
你可以在修改密码后通过管理标志来完成,然后在后台运行应用程序。
让我解释一下,在 AppDelegate 中取一个全局 var isChangedPwd = false
。当最终使用将进入重置密码屏幕并成功重置密码时,您需要制作 isChangedPwd = true
然后在 applicationDidEnterBackground
中管理标志,如下所示
func applicationDidEnterBackground(_ application: UIApplication) {
if isChangedPwd {
exit(0)
}
}
这意味着当您的 isChangedPwd
为 true 并且应用程序将进入后台时,您的应用程序将退出并在初始级别启动。
注意: 如果您不想使用 exit(0) 并且不想在初始级别启动应用程序,那么您可以重定向通过以下代码转到主页。
func applicationDidEnterBackground(_ application: UIApplication) {
if isChangedPwd {
for viewCon in (self.navigationController?.viewControllers)! {
if viewCon is HomePageViewController {
self.navigationController?.popToViewController(viewCon, animated: true)
break
}
}
}
}
据我了解你的问题:
您希望每当用户点击主屏幕上的 "Forgot password" 时,用户将被定向到 ForgotPasswordScreen,然后用户会收到一封邮件(带有 link 以重置密码 [所有这些都由您的服务器完成])。回到应用程序,应该向用户显示主屏幕,无论是启动应用程序还是已经在后台。
如果是上述情况,那么我想您正在执行一项额外的任务。
我建议不需要 ForgotPasswordScreen,只需显示带有文本字段的警报,让用户输入电子邮件 ID 以向其发送密码重置邮件。
你应该只设置一个标志 isLoggedIn
If isLoggedIn == true 然后加载你的其他 viewControllers。
isLoggedIn 必须是一个全局变量,只应在成功时设置 login/logout
在我的应用程序中,我有一个主页 viewcontroller,用户可以从中登录、重设密码并跳至其他页面。
如果我点击 "Forgot password",我会收到一封可以重设密码的邮件。当我从电子邮件重定向回来时,我希望该应用程序留在同一个主页 viewcontroller。
如果我的流程是:在主页点击 "Forgot password" viewcontroller -> 然后转到忘记密码 viewcontrollers -> 退出应用程序 -> 然后转到我的邮件并重置password ,即使这样我也希望应用程序在前台打开时在主页本身中打开,而不是在我退出应用程序或最小化应用程序的任何其他 viewcontrollers 上打开。
我该怎么做?谢谢
你可以在修改密码后通过管理标志来完成,然后在后台运行应用程序。
让我解释一下,在 AppDelegate 中取一个全局 var isChangedPwd = false
。当最终使用将进入重置密码屏幕并成功重置密码时,您需要制作 isChangedPwd = true
然后在 applicationDidEnterBackground
中管理标志,如下所示
func applicationDidEnterBackground(_ application: UIApplication) {
if isChangedPwd {
exit(0)
}
}
这意味着当您的 isChangedPwd
为 true 并且应用程序将进入后台时,您的应用程序将退出并在初始级别启动。
注意: 如果您不想使用 exit(0) 并且不想在初始级别启动应用程序,那么您可以重定向通过以下代码转到主页。
func applicationDidEnterBackground(_ application: UIApplication) {
if isChangedPwd {
for viewCon in (self.navigationController?.viewControllers)! {
if viewCon is HomePageViewController {
self.navigationController?.popToViewController(viewCon, animated: true)
break
}
}
}
}
据我了解你的问题: 您希望每当用户点击主屏幕上的 "Forgot password" 时,用户将被定向到 ForgotPasswordScreen,然后用户会收到一封邮件(带有 link 以重置密码 [所有这些都由您的服务器完成])。回到应用程序,应该向用户显示主屏幕,无论是启动应用程序还是已经在后台。
如果是上述情况,那么我想您正在执行一项额外的任务。
我建议不需要 ForgotPasswordScreen,只需显示带有文本字段的警报,让用户输入电子邮件 ID 以向其发送密码重置邮件。
你应该只设置一个标志 isLoggedIn
If isLoggedIn == true 然后加载你的其他 viewControllers。
isLoggedIn 必须是一个全局变量,只应在成功时设置 login/logout