关闭通过模态搜索显示的视图


77

我正在手动调用segue(设置为模式),以便使用带有以下代码行的Storyboard在Xcode 4.2中显示登录表单:

[self performSegueWithIdentifier:@"LoginSegue" sender:nil];

我可能缺少了一些非常简单的内容,但是找不到以编程方式关闭登录视图并返回到上一个视图的方法。

该视图是导航视图控制器的一部分,因此将segue类型设置为“ push”可以让我使用“后退”按钮将我发送回上一屏幕,但是在“模式”模式下,我不确定如何实现这一目标(例如,在按下按钮后)

任何帮助将非常感激。


xcode仅是一个IDE,请对此进行编辑
Daij-Djan

Answers:


172

如果您的部署目标是iOS 5.0或更高版本,请使用以下消息:

[self dismissViewControllerAnimated:YES completion:nil];

或在Swift中:

self.dismissViewControllerAnimated(true, completion: nil)

如果您的部署目标较旧,请使用以下(不建议使用)消息:

[self dismissModalViewControllerAnimated:YES];

谢谢Rob,我已经尝试过了,它似乎什么也没做。这有什么特殊条件吗?
尼克

1
我在情节提要中用两个VC制作了一个简单的测试用例。初始VC具有一个“ Modal”按钮,该按钮具有到第二个VC的模式选择。第二个VC的“ Dismiss”(取消)按钮与方法连接在一起[self dismissModalViewControllerAnimated:YES]。它按预期工作。我不知道有什么特殊条件。
rob mayoff 2011年

我只想指出我已经解决了这个问题。作为情节提要的新手,我没有将segue类型设置为一个模态实例,所以这是一个用户错误!谢谢。
尼克,

我也尝试以下一种方法:[self.presentingViewController dismissViewControllerAnimated:YEScomplete:nil],它也可以工作,为什么?
jianpx

呈现视图控制器进行解雇。当您将其发送到呈现的视图控制器时,呈现的视图控制器会自动将消息转发到呈现的视图控制器。
rob mayoff 2013年

13

[self dismissViewControllerAnimated:YES completion:nil]; 是IOS5中的新方法



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.