假设我有名为 A、B、C、D、E 的 View Controller 我以presentModel 方式一个接一个地打开这些ViewConrollers
。当我在 ViewController
E 中时,我想以 PresentModel 方式打开另一个 ViewController
F 。在 F ViewController
中,我有一个后退按钮。当我点击它时,它应该关闭 F 并显示 A ViewController
。但现在当它关闭时显示E。当我单击 F
请帮助我。谢谢
已更新
-(IBAction)dismisthis:(id)sender{
UIViewController *dismissingViewController = self.presentingViewController;
while (dismissingViewController.presentingViewController != nil && [dismissingViewController isKindOfClass:[FrontViewController class]]) {
dismissingViewController = self.presentingViewController;
}
[dismissingViewController dismissViewControllerAnimated:NO completion:NULL];
最佳答案
如果您关闭一个正在显示另一个 View Controller 的 View Controller ,则整个层次结构都会被关闭。有多少级别并不重要。因此,您所要做的就是找到您的 View Controller A
并告诉它关闭其呈现的 View Controller 。
如果A
始终位于堆的底部,则可以使用简单的循环来查找它:
UIViewController *dismissingViewController = self.presentingViewController;
while (dismissingViewController.presentingViewController != nil) {
dismissingViewController = self.presentingViewController;
}
[dismissingViewController dismissViewControllerAnimated:YES
completion:NULL];
关于ios - 如何在另一个 ViewController 中关闭一个 viewcontroller?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33630060/