如果不是,我会尝试对我的应用的用户进行身份验证。我首先读取UserDefaults中保存的值以了解它们是否已登录,如果没有,我想显示ViewController以允许它们登录。
但无论如何,LogInViewController不会显示,这是我的代码:
import UIKit
import MapKit
class MainViewController: UIViewController, CLLocationManagerDelegate {
override func viewDidLoad() {
super.viewDidLoad()
if(!UserDefaults.standard.bool(forKey: "userIsConnected")){
let LogVC = self.storyboard?.instantiateViewController(withIdentifier: "LogInViewController") as! LogInViewController
show(LogVC, sender: self)
}
}
我也试过没有' if'条件,它不再起作用了
编辑: 我也尝试过presentVC(),我有错误"尝试在视图不在窗口层次结构中显示"
感谢您的帮助
答案 0 :(得分:3)
您正尝试登录MainViewController
。您应该尽可能避免在视图控制器中管理登录。如果在AppDelegate
中进行管理,则登录效果会更好。
将此代码添加到AppDelegate.swift中的didFinishLaunchingWithOptions
if !UserDefaults.standard.bool(forKey: "userIsConnected") {
let storyboard = UIStoryboard(name: "Main", bundle: Bundle.main)
let loginViewController = storyboard.instantiateViewController(withIdentifier: "LogInViewController")
window?.makeKeyAndVisible()
window?.rootViewController?.present(loginViewController, animated: true, completion: nil
}
确保您可以访问UserDefaults
。