Iphone 取消模态视图

Iphone 取消模态视图,iphone,ios,dismiss,modal-view,Iphone,Ios,Dismiss,Modal View,如果我没有弄错的话,模态视图必须从父视图中删除,而不是从模态视图本身删除 在我当前的项目中,我有两个模态视图。在第一个视图中,我将数据传递给父视图。将数据传递到父视图时,将执行DISCLISH 现在,我有另一个模态视图,它不会将数据传递给父视图,所以除了执行一个self dismissModalView之外,我不知道如何排除 除此之外,关于这一主题的良好实践还有其他建议吗 提前谢谢 更新: 从我得到的答案中,我发现我没有把自己说得很清楚(顺便说一句,这并不罕见) 我知道如何自我解雇一个modal

如果我没有弄错的话,模态视图必须从父视图中删除,而不是从模态视图本身删除

在我当前的项目中,我有两个模态视图。在第一个视图中,我将数据传递给父视图。将数据传递到父视图时,将执行DISCLISH

现在,我有另一个模态视图,它不会将数据传递给父视图,所以除了执行一个self dismissModalView之外,我不知道如何排除

除此之外,关于这一主题的良好实践还有其他建议吗

提前谢谢

更新:

从我得到的答案中,我发现我没有把自己说得很清楚(顺便说一句,这并不罕见)

我知道如何自我解雇一个modalViewController。那没问题。 我还知道如何使用protocoldelegate方法在传递某些数据时从父视图中关闭modalViewController

我的问题是:当没有数据传递时,如何从父视图中关闭modalViewController


再次感谢

您可以使用


如果您不想从
self
调用它,可以使用委托来调用它

因此,您将有一个方法
viewControllerFinished
,或者您的视图控制器将调用它的委托的东西


这样,无论启动“模态视图”控制器的是什么,都会将其关闭。如果您需要从视图控制器获取任何信息,这将非常有用。

您可以从modalView调用:

[self dismissModalViewControllerAnimated:YES];
但是。。。如果您希望有一个恒定的编码模式,无论模态视图是否“返回”某些内容,我建议您从父视图中删除视图(调用的视图,删除的视图)。但两者都可以

这是否回答了您的问题?

用于IOS6和更高版本

[自我解除视图控制器激活:是完成:无]

请注意

[self dismissModalViewControllerAnimated:YES];
已从iOS 6开始弃用。宁可使用

[self dismissViewControllerAnimated:YES completion:nil];
快速版本

self.dismissViewControllerAnimated(true, completion:nil)

您应该使用展开序列,特别是因为您可以使用它从显示的视图控制器获取信息。这显示了如何创建一个:

Swift 4及更新版本:

self.dismiss(animated: true, completion: nil)

@马卡尔:嗯,传递的数据和驳回视图之间没有关系。。。我不明白您的目的。我以前使用protocol delegate方法将数据传递给父视图。当父视图获得数据时,它将取消模式视图。基本上,我的问题是,即使我不需要传递任何数据,我是否可以使用这个方法。当然,只需将nil作为数据,并在协议方法中使用if-then语句来处理这个问题。或者,如果您从未传递过任何数据,只需构建一个不以param形式获取数据的委托方法。还记得@chris说过的话吗:
dismissModalViewController
自IOS 6以来就被弃用了
self.dismiss(animated: true, completion: nil)