【发布时间】:2020-02-19 10:14:29
【问题描述】:
所以我需要一些帮助来消除 iOS 13 中的页面模式屏幕。我查看了几篇帖子,但没有任何帮助。
iOS 13 Modals - Calling swipe dismissal programmatically
查看第二个答案,我试过了,但我一直认为 self 是隐含的,需要明确。尝试研究,但没有发现太多。
我想要做的就是在导航栏的右上角有一个完成按钮。当按下该按钮时,我需要它连接到数据库并保存数据(如果它是有效的(已经实现))。然后它需要关闭模态屏幕并刷新表格,以便获得最新的更改。
我已经阅读了代表,但没有太大帮助。我在UIAdaptivePresentationControllerDelegate 上阅读了一些内容,我了解它背后的基础知识并且能够拉动以关闭模式。但不确定如何在按钮中复制它。我确实记得阅读设置演示委托。或者类似的东西。
let navigationController = segue.destination as! UINavigationController
let editSensorVC = navigationController.topViewController as! EditSensorViewController
navigationController.presentationController?.delegate = editSensorVC
有人说这是我设置委托的方式,但不知道从哪里开始。
【问题讨论】:
-
努力将标题与问题的文本联系起来。关闭模型很简单,只需将操作链接到按钮(通过 IBAction 或 .addTarget),该按钮运行必要的代码,然后调用 `dismiss(amimated:)。为简单起见,取决于父视图控制器是否可以通过 viewWillAppear() 刷新,您甚至可能不需要委托。您能否为您的问题添加更多细节 - 模式和父视图控制器类(仅具有相关属性/方法)会非常有帮助。
-
从我阅读的内容来看,因为我在 iOS 13 中使用了新的页面表,所以我无法使用 viewWillAppear()。我连接了一个 IBAction,我确实调用了dismiss(animated:),除了更新父视图中的表之外,一切都按我需要的方式工作。我会尝试改写的东西。
标签: ios swift ios13 modalviewcontroller dismiss