mat*_*att 5 ios peek-pop ios13
在iOS 13中不推荐使用Peek and pop(UIViewControllerPreviewing)。它将替换为新的contextMenuInteraction东西。
那么,如何直接替换偷看和弹出?换句话说,如何将目标视图控制器显示为预览(预览),然后让用户从那里弹出以显示实际的目标视图控制器?
这是我正在尝试的方法,但与旧的“窥视”和“流行乐”不同:
override func viewDidLoad() {
super.viewDidLoad()
let inter = UIContextMenuInteraction(delegate: self)
self.view.addInteraction(inter)
}
func contextMenuInteraction(_ inter: UIContextMenuInteraction,
configurationForMenuAtLocation loc: CGPoint) -> UIContextMenuConfiguration? {
let config = UIContextMenuConfiguration(identifier: "preview" as NSString,
previewProvider: { SecondViewController() }, actionProvider: nil)
return config
}
func contextMenuInteraction(_ interaction: UIContextMenuInteraction,
willCommitWithAnimator animator: UIContextMenuInteractionCommitAnimating) {
// animator.preferredCommitStyle = .pop
if let vc = animator.previewViewController {
animator.addCompletion {
self.present(vc, animated: true, completion: nil)
}
}
}
Run Code Online (Sandbox Code Playgroud)
在此简单测试中,我们可以长按以查看第二个视图控制器的预览,从而成为第一个视图控制器的整个背景视图。发生的是,我们确实看到了预览,用户可以点击它。但是,然后关闭预览,然后显示第二个视图控制器。
那不是偷看。预览和弹出意味着预览成为第二个视图控制器。它应该成长为演示文稿(“ pop”)。
我尝试将动画师的设置preferredCommitStyle为.pop(如注释行中所示),但没有任何区别。
有人知道吗?
编辑苹果自己的应用程序也无法正确执行此操作。在“照片”应用程序中,如果长按照片以获取上下文菜单并进行预览,如果您点击预览,则将其关闭,然后被推送的图像会突然出现。此外,如果您随后尝试返回(点按“后退”按钮),则会崩溃。
mat*_*att 10
这个问题是在 iOS 13 测试版开发的早期阶段提出的。我提交了一个错误报告。事实证明,我看到的是一个错误,Apple 知道这一点。在 iOS 13 beta 开发的后期阶段,.pop实现了正确的行为,实际上是默认的. 因此,它现在的外观和行为就像早期系统中的 peek 和 pop 一样。
所以,在我的问题中,我说:
这不是偷看和流行。Peek 和 pop 意味着预览成为第二个视图控制器。它应该成长为演示文稿(“流行”)。
这就是它现在所做的。该错误已修复,问题已解决(我已关闭与 Apple 的错误报告)。
| 归档时间: |
|
| 查看次数: |
454 次 |
| 最近记录: |