使用情节提要时消除模态的正确方法是什么?

2020/12/16 10:32 · ios ·  · 0评论

使用情节提要,解散模态的正确方法是什么?

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

请参阅此处在大约一半的时间内解散Presented View Controller

当需要解散呈现的视图控制器时,首选方法是让呈现的视图控制器将其解雇。

因此,单击按钮后,应使用IBAction并编写代码以关闭

据亚历克斯CIO答案Swift 3XCode 8.3

创建课程:

import UIKit

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

但在情节提要中,您应该选择:

动作搜寻->自定义->解雇

仅在此选项出现在Action Segue菜单上之后

我发现通常在情节提要中尝试执行此操作时,我不想创建额外的类。从呈现视图控制器执行关闭仍然很有意义,因此需要一个类来支持它。

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

- (IBAction)dismissAnyModel:(id)sender
{
    [self dismissViewControllerAnimated:YES completion:nil];
}

然后,从情节提要中的任何一个要触发撤消的地方,对第一响应者创建操作,如下所示。您可以通过为IBAction创建唯一的名称来将其扩展为与多个呈现视图控制器一起使用。

为第一响应者创建出口

选择正确的IBAction

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

在这里查看我的答案它提供了两种方法来关闭带有情节提要的模态视图控制器。我喜欢描述的方法二,因为一种方法是在项目中添加类,而仅使用情节提要板无需代码即可完成从模态视图返回的操作。就是说,如果您已经实现了委托和委托协议,那么在这里也可以放置dismissModalViewController语句。

为此,UIStoryboard您首先需要UIStoryboardSegue在项目中创建该类型的Object

创建类型为<code> UIStoryboardSegue </ code>的新类

然后在类中插入以下方法。这是我的课

@implementation DismissController

- (void)perform{

    UIViewController *sourceVC = self.sourceViewController;
    [sourceVC.presentingViewController dismissViewControllerAnimated:YES 
                                                          completion:nil]; 
}

现在您可以在自己的内使用它了UIStoryboard选择应该UIViewController消失的按钮,并将其拖到UIViewController您要转到的位置。在我的情况下,由于我的班级名称,它显示** dismiss Controller *。

在此处输入图片说明

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

如Apple在线文档所示,演示视图控制器负责关闭模式(演示)视图。

有一个职位,并提供例子
在这里

本文地址:http://ios.askforanswer.com/shiyongqingjietiyaoshixiaochumotaidezhengquefangfashishenme.html
文章标签: ,   ,  
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!