如何将 segue 标识符添加到以编程方式进行的模态转换?

Posted

技术标签:

【中文标题】如何将 segue 标识符添加到以编程方式进行的模态转换?【英文标题】:How can I add a segue identifier to a programmatically modal transition? 【发布时间】:2018-02-06 16:09:01 【问题描述】:

我有一个控制器,它位于主情节提要中。当我点击一个按钮时,我调用了displayBorneDetailsAction() 动作,它显示了来自另一个故事板的模态视图。

当我展示我的模态以将数据从我的主视图控制器传递到我的模态视图控制器(使用prepareForSegue)时,我会添加一个 Segue 标识符,但我不知道该怎么做。

我尝试使用performSegue(withIdentifier:),但它没有以相同的方式呈现模态。

@IBAction func displayBorneDetailsAction(_ sender: Any) 
    // open the modal of a borne
    let storyboard : UIStoryboard = UIStoryboard(name: "Borne", bundle: nil)
    let vc: BorneVC = storyboard.instantiateViewController(withIdentifier: "BorneVC") as! BorneVC

    let navigationController = UINavigationController(rootViewController: vc)
    navigationController.modalPresentationStyle = UIModalPresentationStyle.overFullScreen
    navigationController.edgesForExtendedLayout = []

    self.present(navigationController, animated: true, completion: nil)

【问题讨论】:

【参考方案1】:

您不能将标识符添加到程序化segue,因为您可以访问正在呈现的控制器的实例。只需在您呈现控制器的功能中使用控制器做任何您想做的事情。

【讨论】:

以上是关于如何将 segue 标识符添加到以编程方式进行的模态转换?的主要内容,如果未能解决你的问题,请参考以下文章

WinForm C#如何将方法附加到以编程方式创建的控件

Segue 和 Button 以编程方式快速

Qt 将样式从外部样式表应用到以编程方式添加的小部件

添加填充到以编程方式创建的UILabel

如何执行条件转场

如何将 UIPopover 附加到以编程方式创建的 CGRect