如果用户输入了密码,请更改初始 ViewController
Change initial ViewController if user has entered a passcode
我将此登录屏幕作为初始视图控制器:
一旦他们输入密码,就会将他们带到下一个视图控制器。但是我该如何设置它只显示一次(第一次),而不是每次他们打开应用程序时?
谢谢!!
当用户点击 Submit
按钮时,只需将该事实保存为 UserDefaults
中的值:
UserDefaults.standard.set(true, forKey: "UserHasSubmittedPassword")
然后,如果用户之前输入过密码,您可以检查 AppDelegate
文件中的条件,并将用户重定向到另一个屏幕,如下所示:
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
let hasSession: Bool = UserDefaults.standard.bool(forKey: "UserHasSubmittedPassword") ?? false
let vc: UIViewController = {
if hasSession {
// next vc you want to show
} else {
// enter password vc
}
}()
let navigationController = UINavigationController(rootViewController: vc)
window?.rootViewController = navigationController
window?.makeKeyAndVisible()
return true
}
此外,当您希望用户再次输入密码时,不要忘记删除该值:
UserDefaults.standard.removeObject(forKey: "UserHasSubmittedPassword")
您可以在 NSUserDefaults 中设置一个 BOOL 并在 Appdeledate.m
的 didFinishLaunchingWithOptions 方法中检查它
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:"PasswordSubmitted"];
[[NSUserDefaults standardUserDefaults] 同步];
要检查它,您可以使用:BOOL passwordSubmitted = [NSUserDefaults standardUserDefaults]boolForKey:"PasswordSubmitted"];
if(passwordSubmitted){
//move to next screen
}
else{
//Show password screen
}
我将此登录屏幕作为初始视图控制器:
一旦他们输入密码,就会将他们带到下一个视图控制器。但是我该如何设置它只显示一次(第一次),而不是每次他们打开应用程序时?
谢谢!!
当用户点击 Submit
按钮时,只需将该事实保存为 UserDefaults
中的值:
UserDefaults.standard.set(true, forKey: "UserHasSubmittedPassword")
然后,如果用户之前输入过密码,您可以检查 AppDelegate
文件中的条件,并将用户重定向到另一个屏幕,如下所示:
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
let hasSession: Bool = UserDefaults.standard.bool(forKey: "UserHasSubmittedPassword") ?? false
let vc: UIViewController = {
if hasSession {
// next vc you want to show
} else {
// enter password vc
}
}()
let navigationController = UINavigationController(rootViewController: vc)
window?.rootViewController = navigationController
window?.makeKeyAndVisible()
return true
}
此外,当您希望用户再次输入密码时,不要忘记删除该值:
UserDefaults.standard.removeObject(forKey: "UserHasSubmittedPassword")
您可以在 NSUserDefaults 中设置一个 BOOL 并在 Appdeledate.m
的 didFinishLaunchingWithOptions 方法中检查它[[NSUserDefaults standardUserDefaults] setBool:YES forKey:"PasswordSubmitted"]; [[NSUserDefaults standardUserDefaults] 同步];
要检查它,您可以使用:BOOL passwordSubmitted = [NSUserDefaults standardUserDefaults]boolForKey:"PasswordSubmitted"];
if(passwordSubmitted){
//move to next screen
}
else{
//Show password screen
}