使用故事板时解雇模态的正确方法是什么?

ary*_*axt 39 modal-dialog storyboard ios

使用故事板,解雇模态的正确方法是什么?

  • 单击按钮后使用IBAction并编写代码来解散?
  • 使用segue并在单击按钮后通知父视图控制器?

Bil*_*nar 24

请参阅此处将显示的视图控制器关闭一半

当需要关闭呈现的视图控制器时,首选方法是让呈现视图控制器关闭它.

因此,您应该使用IBAction并在单击按钮后编写代码以解除

  • 现在链接被打破了 (12认同)
  • "所以你应该使用IBAction并在点击按钮后编写代码"实际上是错误的.Apple所说的是"你需要通知PARENT视图控制器然后解除模态." (4认同)

UnR*_*ewa 13

根据Alex Cio的回答Swift 3XCode 8.3:

创建类:

import UIKit

class DismissSegue: UIStoryboardSegue {
    override func perform() {
        self.source.presentingViewController?.dismiss(animated: true, completion: nil)
   }
}
Run Code Online (Sandbox Code Playgroud)

但在故事板中你应该选择:

动作Segue - >自定义 - >解雇

只有在Action Segue菜单上出现此选项后


Chr*_*ore 12

我发现通常当我试图在故事板中这样做时,我宁愿不创建额外的课程.从呈现视图控制器执行dismiss仍然是有意义的,因此需要一个类来支持它.

如果您在呈现视图控制器中创建IBAction并对其进行适当命名,例如

- (IBAction)dismissAnyModel:(id)sender
{
    [self dismissViewControllerAnimated:YES completion:nil];
}
Run Code Online (Sandbox Code Playgroud)

然后从故事板中,无论您想要触发解雇,都要为第一响应者创建一个动作,如下所示.您可以通过为IBActions创建唯一名称来扩展它以使用多个呈现视图控制器.

为第一响应者创建一个出口

选择正确的IBAction

有关第一响应者和响应者链的更多信息


T.J*_*.J. 10

在这里看到我的答案.它为您提供了两种使用storyboard关闭模态视图控制器的方法.我喜欢方法二描述,因为你在项目中添加类,你可以在没有使用故事板的代码的情况下完成模态视图的返回.也就是说,如果您已经实现了委托和委托协议,那么它也是放置dismissModalViewController语句的好地方.


Ale*_*Cio 7

要在内部执行此操作,UIStoryboard首先需要UIStoryboardSegue在项目中创建该类型的Object

创建一个类型<code>UIStoryboard</code>.选择应该<code>UIViewController</code>消失的按钮并将其拖动到<code>UIViewController</code>您想要去的位置.在我的情况下,由于我的班级名称,它显示**解雇Controller*.</p>

<p><a rel=在此输入图像描述

选择它,你就完成了!这个网站上也有很好的解释.