如何从 Xcode 10 和 Swift 4 中的界面构建器中解除模态序列 [重复]

Posted

技术标签:

【中文标题】如何从 Xcode 10 和 Swift 4 中的界面构建器中解除模态序列 [重复]【英文标题】:How can I dismiss a modal segue from interface builder in Xcode 10 and Swift 4 [duplicate] 【发布时间】:2018-11-01 21:20:47 【问题描述】:

我在 ViewController 中添加了一个按钮。这个视图控制器是用模态转场激活的。 我怎样才能从界面生成器中消除它。我必须使用 IBAction 还是可以从界面生成器中完成?

【问题讨论】:

使用展开转场 请您再解释一下您的问题 @AbhinavJha 当然。我有一个带有元素列表的表格视图控制器,它由导航控制器包装。在此视图中,我在导航栏中有一个“+”按钮,用于创建新项目。我想在模态 segue 中打开新项目视图。没关系。现在在新视图中,我在导航栏中有一个取消按钮和一个保存按钮。我无法解除转场并关闭此视图。 @Kobazzo,请在下面找到我的答案 【参考方案1】:

试试下面的代码

override func viewDidLoad() 
    super.viewDidLoad()
    navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Back", style: .plain, target: self, action: #selector(self.leftNavigationItemAction(_:)))


@objc func leftNavigationItemAction(_ sender: UIBarButtonItem) -> Void 
    self.dismiss(animated: true, completion: nil)

【讨论】:

【参考方案2】:

斯威夫特 3:

present(UIViewController(), animated: true, completion: nil)

dismiss(animated: true, completion: nil)

Swift 2.2:

self.presentViewController(true, completion: nil)

隐藏/关闭视图控制器:

self.dismissViewControllerAnimated(true, completion: nil)

希望这会有所帮助,谢谢。

【讨论】:

谢谢粉丝。完美的解决方案。

以上是关于如何从 Xcode 10 和 Swift 4 中的界面构建器中解除模态序列 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Xcode 中将 Swift 版本从 5 更改为 4?

在 Swift 4.2 Xcode 10 中使用动作扩展从 Safari 共享 PDF 文件失败

Xcode 10, Swift 4.2及iOS 12升级适配

如何在 Xcode 9.3 中切换到 Swift 4.0?

Firebase Deeplink 不触发应用程序:continueUserActivity:restorationHandler,Swift 4.2 Xcode10。

Swift 4.2 新特性(译)