Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift-再次显示ViewController后按下ViewController不工作_Ios_Swift_Uiviewcontroller_Uinavigationcontroller - Fatal编程技术网

Ios Swift-再次显示ViewController后按下ViewController不工作

Ios Swift-再次显示ViewController后按下ViewController不工作,ios,swift,uiviewcontroller,uinavigationcontroller,Ios,Swift,Uiviewcontroller,Uinavigationcontroller,这个问题听起来有点令人困惑,但我不知道如何更好地描述它。。让我解释一下: 第一个展示的ViewController是FirstLaunchVC,用户在他的电子邮件中键入,如果他注册了,他将获得LoginVC,然后从那里获得MainVC。一切正常 在MainVC中,用户可以注销并返回FirstLaunchVC。但是,在完成weiterButton之后,应该将用户带到LoginVC的操作没有做任何事情 FirstLaunchVC: 主要问题: printhi正在打印,但注销后pushViewCont

这个问题听起来有点令人困惑,但我不知道如何更好地描述它。。让我解释一下:

第一个展示的ViewController是FirstLaunchVC,用户在他的电子邮件中键入,如果他注册了,他将获得LoginVC,然后从那里获得MainVC。一切正常

在MainVC中,用户可以注销并返回FirstLaunchVC。但是,在完成weiterButton之后,应该将用户带到LoginVC的操作没有做任何事情

FirstLaunchVC:

主要问题:

printhi正在打印,但注销后pushViewController不工作

罗金维克:

MainVC:

这是用户可以注销的地方


我尽力解释这个问题。如果还有什么不清楚的,请告诉我。我很高兴能得到任何帮助:

如果在注销weiterButtonTapped后致电

您应该将您的pushController线路置于分派状态,这是因为控制器将被完全释放:

    DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) {
        self.navigationController?.pushViewController(LoginView, animated: true)
    }

导航控制器用于推动viewController,使其不显示新的视图控制器,因此请将行更改为“self.navigaitonController?”.pushfirstLaunchVC,animated“好的,这确实有效,但我希望使用当前动画,而不是推送动画。”。这有可能吗?您可以在google为tiyep更改演示样式,请在此处找到:。谢谢:这段代码是在主线程中运行的,没有必要检查它,还有为什么在可以尽快完成时会延迟3秒。当按下按钮时,@kjoe navigationcontroller可以显示控制器,这不是3秒,而是0.3秒,我在uinavigationcontroller中看不到一个present方法只显示一个push,在uistotboard中记住一个导航控制器不能modalu呈现一个视图控制器,使用0.3并不是一个真正的区别,最好使用DispatchQueue.main.async{}
func transitionToHome () {

    let homeVC =
    storyboard?.instantiateViewController(withIdentifier: Constants.Storyboard.homeViewController) as? MainViewController
    let navigationController = UINavigationController(rootViewController: homeVC!)

    view.window?.rootViewController = navigationController
    view.window?.makeKeyAndVisible()
}
@objc func signoutButtonTapped() {
    UserDefaults.standard.setIsLoggedIn(value: false)
    UserDefaults.standard.synchronize()

    let firstLaunchVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "FirstLaunchVC")

    self.navigationController?.present(firstLaunchVC, animated: true)
}
    DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) {
        self.navigationController?.pushViewController(LoginView, animated: true)
    }