ios - 如何在另一个 ViewController 中关闭一个 viewcontroller?

标签 ios objective-c uiviewcontroller presentmodalviewcontroller

假设我有名为 ABCDE 的 View Controller 我以presentModel 方式一个接一个地打开这些ViewConrollers。当我在 ViewController E 中时,我想以 PresentModel 方式打开另一个 ViewController F 。在 F ViewController 中,我有一个后退按钮。当我点击它时,它应该关闭 F 并显示 A ViewController。但现在当它关闭时显示E。当我单击 F

的后退按钮时,如何关闭除 A 之外的所有其他 View Controller

请帮助我。谢谢

已更新

-(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/

相关文章:

ios - 如何在 iTunes connect 中本地化阿拉伯语应用程序?

iphone - 我们可以在 UITextView 上执行哪些 addTarget 操作?

ios - 快速翻转 View : issues with whole screen flipping + tap gesture only works twice

ios - 启动特定的 viewController 以响应远程推送通知

ios - 普通 View Controller 内的 TableView

Swift : [Warning: Unable to create restoration in progress marker file] during first launch 中的 iOS 8 和 9

ios - i语音。识别用户何时说话

objective-c - 自定义 Storyboard对象

objective-c - 我的代表的代表是...(设计模式)

ios - 扩展 TableViewCell 空白