我有一个RegistrationViewController和一个LoginViewController:
LoginViewController是我的InitialViewController/RootViewController。
如果我注册并点击注册按钮,它将自动推送到MainViewController。如果我按下注销按钮,它就会退回到RegistrationViewController,这是因为我使用了self dismissModalViewController动画:是的。
- (IBAction)logoutPressed:(id)sender {
[self dismissModalViewControllerAnimated:YES];
}如果我按下注销按钮,如何解除到LoginViewController。
发布于 2015-07-23 12:24:05
-(void)dismissToRootViewController
{
UIViewController *vc = self;
while (vc.presentingViewController) {
vc = vc.presentingViewController;
}
[vc dismissViewControllerAnimated:YES completion:nil];
}发布于 2012-05-02 17:32:06
您可以使用UINavigationController方法-popToRootViewControllerAnimated:。
- (IBAction)logoutPressed:(id)sender {
[self.navigationController popToRootViewControllerAnimated:YES];
}如果您要讨论的是几个模式视图重叠显示,您可以通过将-dismissViewControllerAnimated:completion:或较旧的-dismissModalViewControllerAnimated:发送到堆栈中最低的一个来取消所有这些模式视图,如文档中所述:
如果您连续呈现多个视图控制器,从而构建一个呈现的视图控制器堆栈,则在堆栈中较低的视图控制器上调用此方法会取消其直接子视图控制器以及堆栈上该子视图控制器之上的所有视图控制器。当发生这种情况时,只有最顶层的视图才会以动画形式的
关闭
发布于 2017-10-25 15:16:28
试试看,对我很有效。
[[[UIApplication sharedApplication] keyWindow].rootViewController dismissViewControllerAnimated:YES completion:nil];https://stackoverflow.com/questions/10411078
复制相似问题