尝试以编程方式更改根视图控制器,最初在情节提要中作为初始视图控制器进行检查。每次打开相同的 viewController 时,它在情节提要中设置为 initialViewController。请指导。在下面分享到目前为止尝试过的代码:
let isLoggedIn = UserDefaults.standard.bool(forKey: kIsLoggedIn)
if isLoggedIn{
//Welcome Screen for Touch ID
let storyboard = UIStoryboard(name: "Main", bundle: nil)
// let rootVC = storyboard.instantiateViewController(withIdentifier: "WelcomeViewController") as! WelcomeViewController
let rootVC = storyboard.instantiateViewController(withIdentifier: "DashboardVC") as! DashboardVC
setRoot(rootVC: rootVC)
}
else{
//Login Screen
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let rootVC = storyboard.instantiateViewController(withIdentifier: "RegisterViewController") as! RegisterViewController
setRoot(rootVC: rootVC)
}
func setRoot(rootVC: UIViewController){
let navController = UINavigationController.init(rootViewController: rootVC)
navController.isNavigationBarHidden = true
//if let window = self.window{
window?.rootViewController = rootVC
window?.makeKeyAndVisible()
//}
}
其次,尝试更改 rootViewController 并尝试在登录后添加 MFSideMenu 但无法快速工作。请在下面找到它的代码:
func loadDashBoard(storyboard : UIStoryboard){
let vc = storyboard.instantiateViewController(withIdentifier: "MenuNavigationController")
let sideMenuVC = storyboard.instantiateViewController(withIdentifier: "SideMenuViewController") as! SideMenuViewController
let container : MFSideMenuContainerViewController = MFSideMenuContainerViewController.container(withCenter: vc, leftMenuViewController: sideMenuVC, rightMenuViewController: nil)
let navController = UINavigationController.init(rootViewController: container)
navController.isNavigationBarHidden = true
window?.rootViewController = navController
window?.makeKeyAndVisible()
}
以上所有编写的代码都在 AppDelegate 中。