我的所有页面上都有一个带有注销按钮的应用程序。当按下注销按钮时,我希望我的应用进入登录屏幕。为此,我在IBAction中为注销按钮调用以下命令:

loginScreen = [[GP_MobilViewController alloc] initWithNibName:@"GP_MobilViewController" bundle:nil];
[currentView presentViewController:loginScreen animated:YES completion:nil];


现在我的问题是我不知道如何删除所有先前创建的屏幕。因为我可以告诉我,presentViewController不会为我删除任何内容,所以我必须自己进行此清理?

PS。我没有使用UINavigationController。所以popToRootViewControllerAnimated:是,对我不起作用。我需要另一个解决方案。提前致谢。

最佳答案

self.view.window.rootViewController = self;


或在完成区中

loginScreen = [[GP_MobilViewController alloc] initWithNibName:@"GP_MobilViewController" bundle:nil];
[currentView presentViewController:loginScreen animated:YES completion:^{
    [UIApplication sharedApplication].keyWindow.rootViewController =loginScreen;
}];


或在您的loginViewControllers-viewDidAppear中,也可以将其设置为rootViewController到window。
这使得所有viewControllers被释放。

关于ios - 调用presentViewController之后清理 View 的正确方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21476406/

10-09 06:45