swift - 当样式为 .compact 时,选择后关闭 UIDatePicker
问题描述
使用 Swift 的故事板应用程序。
如何在用户选择日期后关闭日历(当 UIDatePicker 样式为 .compact 时显示日期选择)?目前,用户需要在日历外部点击才能关闭。我希望它在用户选择日期后自动关闭。
我已经尝试辞去 UIDatePicker 的第一响应者,一旦收到日期更改的通知,就结束在表格视图控制器中的编辑,阅读另一个响应(此处),到目前为止,没有什么对我有用。
解决方案
现在,您可以执行以下操作:
presentedViewController?.dismiss(animated: true, completion: nil)
IE
override func viewDidLoad() {
super.viewDidLoad()
datePicker.addTarget(self, action: #selector(dateChanged), for: .valueChanged)
}
@objc private func dateChanged() {
presentedViewController?.dismiss(animated: true, completion: nil)
}
但请注意,这可能会在未来的 iOS 版本中中断,因为这依赖于compact
日期选择器呈现视图控制器以显示日历的实现细节。如果您打印出提供的 VC 的类型,您将看到_UIDatePickerIOSCompactViewController
. 领导_
表明这是一个实现细节。
记录的所有内容compact
是:
一种指示日期选择器显示为标签的样式,点击该标签时会显示日历样式的编辑器。
所以在未来的 iOS 版本中,他们可以改为将实现更改为不提供新的视图控制器,这很可能会破坏,你必须找到另一种方法。我现在没有看到任何记录在案的方法。
推荐阅读
- python - 在 django 管理面板中注册一个管理员用户,仅使用电子邮件 ID,然后使用电子邮件帐户激活/密码链接开始使用管理面板
- jquery - jQuery 对图像使用 href
- mysql - 查询 Mysql vs Node JS 没有返回任何结果
- splunk - 在 Splunk 饼图搜索表达式中需要帮助
- python - 上传错误:“latin-1”编解码器无法使用 JSON 数据上传对字符“\u2019”进行编码
- asp.net - 如何在 ASP.net 应用服务中将静态文件定义为起始页?
- java - 为什么 string.equals 在我的情况下不起作用?
- java - 如何在android上的服务中显示对话框
- docker - docker 端口映射符号:5432/tcp vs 0.0.0.0:5432->5432/tcp 有什么区别?
- java-8 - Java 8 流已被操作或关闭