调用presentViewController后清理视图的正确方法是什么?

时间:2014-01-31 09:25:47

标签: ios iphone presentmodalviewcontroller

我的所有页面都有一个带注销按钮的应用程序。按下注销按钮后,我希望我的应用程序进入我的登录屏幕。我通过在我的IBAction中调用以下注销按钮来执行此操作:

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

现在我的问题是我不知道如何删除所有以前创建的屏幕。因为我可以告诉我,presentViewController不会为我删除任何东西,所以我必须自己做这个清理工作?

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

1 个答案:

答案 0 :(得分:1)

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到窗口 这使得所有viewControllers都被释放。