我有带有 ENSideMenu 的主视图控制器,用于侧边菜单,在主视图控制器中我有退出按钮。我已将 ENsideMenu MyNavigationController 作为故事板中的初始视图控制器。
我想先在应用程序中显示主页,它工作正常,但是当我从登录到主页时,主页没有响应..一旦我退出,主页就会再次响应。
这是我的代码:
在 appdelegate 中:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
let userId: String? = KeychainWrapper.standard.string(forKey: "Uid")
print("appdelegate userid \(userId)")
if userId != nil{
let mainStoryBoard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let homeVC = mainStoryBoard.instantiateViewController(withIdentifier: "HomeViewController") as! HomeViewController
self.window!.rootViewController = homeVC
}
return true
}
在 LogInVC 的 loginButton 中:
let saveUserId: Bool = KeychainWrapper.standard.set(Uid ?? "", forKey: "Uid")
print("the userid is \(saveUserId)")
if (Uid?.isEmpty)!
{
print("login fail")
}
else{
DispatchQueue.main.async {
let homeVC = self.storyboard?.instantiateViewController(withIdentifier: "HomeViewController") as! HomeViewController
let appDelagate = UIApplication.shared.delegate
appDelagate?.window??.rootViewController = homeVC
}
}
在 HomeVC 中:
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
let nextViewController = self.storyboard?.instantiateViewController(withIdentifier: "MakePaymentViewController") as! MakePaymentViewController
self.navigationController?.pushViewController(nextViewController, animated: true)
let indexPathHome = indexPath.row
print("home collectionItem indexpath \(indexPathHome)")
}
@IBAction func signOutButton(_ sender: Any) {
print("signout tapped")
KeychainWrapper.standard.remove(key: "Uid")
}
@IBAction func sideMenuButton(_ sender: Any) {
print("in side menu")
toggleSideMenuView()
}
我已将 ENsideMenu MyNavigationController 作为故事板中的初始视图控制器。
我需要 homeVc 在登录后做出响应。请帮我解决这个问题。