调用CresentViewController后清理视图的正确方法



我在所有页面上都有一个带有登录按钮的应用程序。按下注销按钮时,我希望我的应用程序转到我的登录屏幕。我通过在我的ibaction中调用以下内容以获取注销按钮:

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

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

ps。我不使用uinavigationController。因此,poptorootViewControllerAnimation:是的,对我不起作用。我需要另一个解决方案。预先感谢。

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到窗口。
这使所有视图控制器都被释放。

最新更新