从UITabBarController上消除
我想它可以被复制,但我到处寻找,并没有找到我的解决方案。从UITabBarController上消除
所以关于我的问题。我有这样的事情 open this image to see more
在我的AppDelegate我有FUNC
func logIn() {
let userExist = UserDefaults.standard.string(forKey: "auth_key_user")
if userExist != nil && userExist != "" {
let storyboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let whereToGo = storyboard.instantiateViewController(withIdentifier: "AllPostsOfUserTabBarController") as! AllPostsOfUserTabBarController
window?.rootViewController = whereToGo
}
}
如果用户存在,导致我的标签栏控制器中的第一个视图控制器。在那里我有导航按钮与行动注销。 我需要注销(发送数据到服务器),然后转到我的第一个视图控制器与文本字段和按钮,我可以再次登录。
我如何需要实现它?
尝试后logout-
DispatchQueue.main.sync() {
let appDelegate = UIApplication.shared.delegate as! AppDelegate
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let loginVC = storyboard.instantiateInitialViewController()
appDelegate.window?.rootViewController = loginVC
}
希望它可以帮助这个代码!
我认为它只是说哪一个控制器应该是首字母缩写,但不能打开它。 –
是的,我试过了。我相信它留在UITabBarController中,因为它显示来自UITabBarController的viewWillAppear的打印 –
我的不好。它有效,它只是我,虚拟。我忘了从AppDelegate切换到func。我试图不仅连接到UITabBarController,而是连接到UINavigationController并查看发生了什么。 谢谢你的回答。 –
将此代码用于注销按钮的功能。它会让你回到根控制器。
func logoutBtnClicked()
{
DispatchQueue.main.sync()
{
(send your data to server)
self.navigationController?.popToRootViewController(animated: true)
}
}
在尝试这个的appdelegate
虽然登录
self.window?.rootViewController = whereToGo
虽然退出
func setupLoginViewController() {
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let loginVC: UIViewController? = storyboard.instantiateViewController(withIdentifier: "loginVCID") as? UIViewController
let navController: UINavigationController? = UINavigationController(rootViewController: loginVC!) as UINavigationController
window?.rootViewController = navController
}
这是什么意思“Constant.StoryBoard ...”? –
抱歉,我忘记提及它是故事板对象。 – KKRocks
@Ahishek Jain给出了答案。 您的代码也能正常工作,但在返回到初始视图控制器后,我按下按钮什么也没有发生。我的代码如下所示: '@IBAction func transferData(_ sender:Any){0} {0} {0}让myVC = self.storyboard?.instantiateViewController(withIdentifier:“TabBarController”)as! TabBarController myVC.textInputTB = textField.text! self.navigationController?.pushViewController(myVC,animated:true) }' –
任何问题,使用上面的代码面对? – KKRocks