物镜-c中的当前视图和呈现视图控制器

问题描述 投票:0回答:1

我有一个tableview控制器,一个详细的VC。以及允许删除项目的编辑详细信息VC。 Tableview由一系列项目组成。

在删除项目时,我不仅要关闭编辑VC,而且要关闭其下的detailVC(因为该项目不再存在),只剩下更新的tableview。

我可以成功地通过通知更新表格视图,并且可以关闭编辑视图控制器。但是,我想不出一种方法,可以在编辑VC消失后删除详细信息VC。

到目前为止,从editVC中的服务器确认删除后,我具有:

[self dismissViewControllerAnimated: NO completion:nil];
[self.presentingViewController dismissViewControllerAnimated: YES completion: nil];

这将关闭editVC,但不会关闭详细信息VC。

我还会在删除后发送一条通知,该通知会被tableview VC和detail VC所观察到,并且两者的处理程序都具有类似的解除代码。我已经尝试过每个:

[self dismissViewControllerAnimated: NO completion:nil];
[self.presentingViewController dismissViewControllerAnimated: YES completion: nil];

但是细节视图仍然不会消失。

请注意,详细信息是Show(例如)推送,而Edit是嵌入在其自己的导航中的模式视图控制器。

情节提要中的VC

enter image description here

ios objective-c presentviewcontroller dismissviewcontroller
1个回答
0
投票

您正在展示来自DetailVC的导航控制器。这就是为什么您的代码不起作用的原因。您可以使用以下代码从EditVC返回表视图屏幕。

UINavigationController *mainNavigation = (UINavigationController *) self.navigationController.presentingViewController;
[self dismissViewControllerAnimated:YES completion:^{
    [mainNavigation popViewControllerAnimated:YES];
}];

将上面的代码放在EditVC内,可以解决问题。

© www.soinside.com 2019 - 2024. All rights reserved.