从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 
    } 
} 

如果用户存在,导致我的标签栏控制器中的第一个视图控制器。在那里我有导航按钮与行动注销。 我需要注销(发送数据到服务器),然后转到我的第一个视图控制器与文本字段和按钮,我可以再次登录。

我如何需要实现它?

+0

任何问题,使用上面的代码面对? – KKRocks

尝试后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 
} 

希望它可以帮助这个代码!

+0

我认为它只是说哪一个控制器应该是首字母缩写,但不能打开它。 –

+0

是的,我试过了。我相信它留在UITabBarController中,因为它显示来自UITabBarController的viewWillAppear的打印 –

+0

我的不好。它有效,它只是我,虚拟。我忘了从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 
    } 
+0

这是什么意思“Constant.StoryBoard ...”? –

+0

抱歉,我忘记提及它是故事板对象。 – KKRocks

+0

@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) }' –