回到视图控制器的前一个实例
Posted
技术标签:
【中文标题】回到视图控制器的前一个实例【英文标题】:going back to a previous instance of a view controller 【发布时间】:2015-04-29 17:38:02 【问题描述】:我想。我试过了
[self dismissViewControllerAnimated:YES completion:nil];
但卡在加载屏幕上。我想回到前面的例子。 现在它正在模态地呈现。我试过了:
CameraOverlayVC *vc = [[UIStoryboard storyboardNewSendCase]instantiateViewControllerWithIdentifier:@"CameraOverlayVC"];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:vc];
NSArray *viewControllers = nav.viewControllers;
NewCaseSummaryVC *rootVC = [viewControllers objectAtIndex:viewControllers[3]];
[self.presentingViewController presentViewController:rootVC animated:YES completion:nil];
然后它崩溃了。我也试过了:
CameraOverlayVC *vc = [[UIStoryboard storyboardNewSendCase]instantiateViewControllerWithIdentifier:@"CameraOverlayVC"];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:vc];
[self presentViewController:nav animated:YES completion:nil];
但它卡在加载屏幕上.. 有没有办法?视图控制器没有连接[我也尝试过 unwind segue,我什至设置了断点,看看它是否命中了 unwind segue 的方法,但它没有]。我模态地展示了视图控制器,但是如果我再次关闭这个视图控制器,它就会卡在加载屏幕上。
任何建议都会很棒!再次感谢!
【问题讨论】:
“加载屏幕”是什么意思? 如果您以模态方式呈现,那么您需要做的就是从控制器中关闭模态视图,它将返回到前一个视图。尝试:[self dismissViewControllerAnimated:YES 完成:nil]; 【参考方案1】:你完全错了。您正在将 CameraOverlayVC *vc 作为 UINavigationController 的 rootViewController,这意味着这是根导航控制器,之前添加的所有视图控制器都将消失。所以当你关闭它时,你会看到一个空白或加载屏幕。
你需要做的是,说当前是在 x viewController 然后以模态方式呈现 vc 将是:
CameraOverlayVC *vc = [[UIStoryboard storyboardNewSendCase]instantiateViewControllerWithIdentifier:@"CameraOverlayVC"];
[self presentViewController:vc animated:YES completion:nil];
要关闭 vc,请使用取消/关闭按钮,并在其点击事件上写:
[self dismissViewControllerAnimated:YES completion:nil];
如果您还有其他期待,请告诉我。
【讨论】:
以上是关于回到视图控制器的前一个实例的主要内容,如果未能解决你的问题,请参考以下文章