在iOS 5上使用Segues/Storyboard弹出当前视图

Juk*_*rpa 17 ios ios5 uistoryboard segue

我正在使用iOS 5 SDK创建一个应用程序.我设法使用Storyboard的Segues推送视图,但我找不到弹出当前视图并返回上一个视图的正确方法.

我没有使用任何navigationController(该应用程序没有任何顶部或底部栏).

我不认为使用modal或push segue是另一种方式,因为它实例化一个新的控制器.

我是否必须使用相反动画的自定义Segue并在最后删除视图?或者,还有更好的方法 ?

ric*_*ter 53

iOS 5中的故事板不提供从segue返回的"无代码"方式 - 这是您需要自己实现的.

如果使用"push"segues(需要导航控制器),请使用导航控制器的popViewControllerAnimated:方法撤消上次推送segue.(或其他撤消更多方法;请参阅UINavigationController文档.)

如果使用"模态"segue,请调用dismissViewControllerAnimated:completion:显示当前视图控制器的视图控制器(可以从其presentingViewController属性获取).


更新:在iOS 6及更高版本中,可以在故事板中"退回".它仍然不是一个无代码解决方案 - 它不应该是,因为你需要能够做一些事情,比如从模态视图控制器区分"完成"和"取消"退出.但它确实可以让您将更多应用程序的语义流量添加到故事板中.Apple有一份详细描述它们技术说明,WWDC 2012 Session 407的视频对它们进行了介绍.


NSZ*_*bie 24

您可以尝试[self dismissViewControllerAnimated:YES completion:nil];从要关闭的控制器进行调用(控制器是否已按下或以模态方式显示).

以下是相关文档:UIViewController类参考

呈现视图控制器负责解除它所呈现的视图控制器.如果在呈现的视图控制器本身上调用此方法,它会自动将消息转发给呈现视图控制器.

  • 注意:这确实_not_工作w /导航控制器(弹出). (16认同)

Joh*_*ger 16

只是为了澄清.

在被推的班上.只需连接以下内容,控制器和视图就会弹出.

[self.navigationController popViewControllerAnimated:YES];
Run Code Online (Sandbox Code Playgroud)