Ios 从头开始重新启动应用程序。注销功能

Ios 从头开始重新启动应用程序。注销功能,ios,objective-c,logout,Ios,Objective C,Logout,因此,我有一个应用程序,当启动时,它会在登录后转到LoginViewController,它会以模式转换到NavigationController,其中root是下一个MainViewController。如果我想实现注销功能,最好的方法是什么?我应该只是通过编程方式将模式转换回LoginViewController,还是有办法在启动vc时轻松重启应用程序?我希望,如果我做一个模式转换回到LoginViewController,MainViewController将不会仍然运行 谢谢 您不应该使

因此,我有一个应用程序,当启动时,它会在登录后转到LoginViewController,它会以模式转换到NavigationController,其中root是下一个MainViewController。如果我想实现注销功能,最好的方法是什么?我应该只是通过编程方式将模式转换回LoginViewController,还是有办法在启动vc时轻松重启应用程序?我希望,如果我做一个模式转换回到LoginViewController,MainViewController将不会仍然运行

谢谢

您不应该使用模式转换“返回”——这实际上不会返回,它会创建一个新的LoginViewController。如果要返回到LoginViewController的同一实例,应关闭导航控制器。如果进行模式转换,控制器层次结构将如下所示:

LoginView控制器-->导航控制器-->主视图控制器-->LoginView控制器

当您执行模式转换时,呈现视图控制器将保持指向呈现视图控制器的强指针,因此所有这些控制器仍将处于“活动”状态,并且计时器将继续运行


我会使用不同的结构。我将使导航控制器成为窗口的根视图控制器,并从MainViewController的ViewDidDisplay方法中显示(如果需要)LoginViewController。当你处理完它,就把它扔掉。如果您再次需要它来注销,请以模式再次显示它。

您所说的“MainViewController将不再运行”是什么意思?你担心什么?视图通常不会运行。他们等得很好。假设我有一个计时器,每分钟从互联网上拉一次,自动刷新。如果我使用模式转换返回登录,计时器还会运行吗?@rdelmar yea,我有点想它会这样发生。如何从RootViewController的模式视图中取消NavigationController?我尝试了几个,包括
self.parentViewController.navigationController
@Alan,我不确定你说的是什么控制器。您是在MainViewController中,还是在它的模式显示中,还是在其他地方?@rdelmar是的,我在MainViewController中,但我正在以模式显示另一个设置ViewController。因此,SettingsViewController中有一个注销按钮。我正在尝试从设置视图控制器转到登录视图控制器。@Alan,尝试[self.presentingViewController.presentingViewController dismissViewControllerAnimated:YES completion:nil]@勒马尔,你是主人!永远不要停止让我惊讶。非常感谢。